.net - studio怎么用 - visual studio编译c++




将自定义编译器与Visual Studio IDE集成 (2)

查看“BuildAction属性”和“CustomTool属性”,地址为: http://msdn.microsoft.com/en-us/library/0c6xyb66( VS.80) .aspx

几年前,我读了一篇关于创建自定义编译器,注册它,并设置这些属性的优秀文章。 我现在找不到这篇文章,但这应该让你开始。

背景 :我想创建一个自定义的VB编译器,扩展“原始”编译器,以处理我自定义的编译时间属性。

问题 :在创建自定义编译器之后,我有一个可执行文件能够通过标准命令行界面编译VB代码,我该如何将此编译器与Visual Studio IDE集成? (如按“编译”或“建立”将使用我的编译器,而不是默认的编译器)。

编辑 :(纠正我,如果我错了)

从这里的反应,我看到这个问题有点令人震惊,所以我将进一步解释我的需要和背景:.NET为我们提供了一个称为Attributes的伟大机制。 就我所知,制作属性将其预期行为应用于属性元素(程序集,模块,类,方法等) - 必须反映属性。 所以这里真正的诀窍就是在正确的位置反映和应用行为。

让我们以序列化为例:我们用Serializable属性来装饰一个类。 然后,我们将该类的一个实例传递给格式化程序的Serialize方法。 格式化程序反映实例,检查它是否具有Seri​​alizable属性,并相应地执行。

现在,如果我们检查同步,标志,废弃和CLSCompliant属性,那么真正的问题是:谁在反思他们? 至少在某些情况下,它必须是编译器(和/或IDE)。 因此,如果我希望创建自定义属性来改变元素的行为而不管任何特定的使用者,我必须扩展编译器来在编译时反思它们。

当然,这些并不是我个人的见解:“ Applied .NET Attributes ”这本书提供了一个完整的例子,创建一个自定义属性和一个自定义的C#编译器,以便在编译时反映该属性(该示例用于实现“java样式检查异常“)。


查看“MSBuild概述”,地址为: http://msdn.microsoft.com/en-us/library/ms171452.aspx 。 Visual Studio项目是MSBuild项目。 我相信你所要做的只是做一些小的改变。 我没有为编译器做过,但编译后用ILMerge做了,效果很好。 无缝甚至可以调试合并的程序集。





ide-customization