我有一个包含大约 25 个项目的大型 Visual Studio 2010 解决方案。我们有一个自动构建过程,它启动一个批处理文件,除其他外,它在 .sln 文件上调用 msbuild。
我们现有的流程(也构建了一些 Excel VBA 和 VB6 代码)从我们的源代码管理中签出一个文本文件,增加一个“内部版本号”并重新提交它。我们想要一个类似的过程来“构建标记”每个 C# 项目的 AssemblyInfo.cs 文件。
我可以编写一个小实用程序来解析每个 AssemblyInfo 并根据我们已经使用的构建版本文本文件设置 AssemblyTitle 字段。但是,编译器似乎应该能够从常量执行此操作。网络上的许多消息来源说 C# 缺少适当的预处理器,但编译器可以使用 #define 执行类似的操作。
问题:有没有办法在 Visual Studio 中定义从文本文件/命令行参数中提供的位置读取的编译器常量?
当添加更多项目时,这样做会使我们的构建标签例程更具可扩展性,并且意味着在源代码管理中更改的文件更少。