我有一个我在TFS 2010版本中构建的解决方案。此解决方案及其构建具有3个配置集(开发,集成,发布)。我已经设置了构建所有这些的构建,并且它工作得非常好。
在此解决方案中,有一个Silverlight项目,它根据正在构建的配置设置不同的条件编译符号,因为它为每个配置提供了不同的Web服务URL,如下所示:
private const string STR_WS_EndPoint =
#if INTEGRATION
"Integration_WS_EndPoint";
#elif DEVELOPMENT
"Development_WS_EndPoint";
#elif DEBUG
"Debug_WS_EndPoint";
#else
"Release_WS_EndPoint";
#endif
当我在Visual Studio中构建这些不同的配置时,它为每个配置选择正确的字符串,但是当TFS构建不同的配置时,它们都以“Release_WS_EndPoint”字符串结尾(我使用ILSpy检查),即没有条件符号是活动的。如何获取TFS构建以获取这些编译符号?我不能在构建中使用“MSBuild Arguments”字段,因为就像我说的那样,它构建了所有不同的配置,因此我需要使用像Visual Studio那样的.csproj编译符号。
答案 0 :(得分:0)
我正在使用XmlPreprocess tool进行配置文件操作,具体取决于构建配置。它使用一个映射文件用于多个环境/服务器。您可以通过Excel编辑映射文件。这是非常容易使用。 在after build步骤中调用XmlPreprocess并将配置作为环境参数传递。