TFS 2010没有为所有解决方案构建指定的配置

时间:2016-06-07 16:16:19

标签: .net tfs tfs2010 csc

我们遇到了#if DEBUG预编译指令的错误,该指令在服务器上部署时无效。

我们在当地工作时一切都很顺利。即使本地发布也不包含if DEBUG内的代码。当我们在TFS构建服务器上构建解决方案时会出现问题。

这是我检查的一切,也许一双新鲜的眼睛会找到我忽略的东西。

项目配置

在发布配置中定义DEBUG常量

这是项目配置(我们使用的#if DEBUG):

enter image description here

在我的电脑上运行正常。当我切换到Release配置时,#if DEBUG中的代码不会输出到dll。

TFS配置

配置文件夹路径

TFS使用tfsBuild.proj文件,配置文件夹路径应包含文件所在的目录。我仔细检查以确保它的目标是正确的。

SolutionToBuild

这是定义需要构建的两个解决方案的配置部分:

<SolutionToBuild Include="$(BuildProjectFolderPath)/../../../PathToTheSolutionThatIsCorrectIDoubleChecked1/Solution1.sln">
  <Targets></Targets>
  <Properties>
  </Properties>

</SolutionToBuild>

<SolutionToBuild Include="$(BuildProjectFolderPath)/../../../PathToTheSolutionThatIsCorrectIDoubleChecked2/Solution2.sln">
  <Targets></Targets>
  <Properties>
  </Properties>

</SolutionToBuild>

ConfigurationToBuild

在tfsBuild.proj文件中,是一个告诉TFS用于构建的配置的部分。它的定义如下:

<ConfigurationToBuild Include="Release|Any CPU">
  <FlavorToBuild>Release</FlavorToBuild>
  <PlatformToBuild>Any CPU</PlatformToBuild>
</ConfigurationToBuild>

日志文件

在日志文件中,我可以看到TFS使用以下选项运行csc.exe:

C:\windows\Microsoft.NET\Framework64\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:TRACE /highentropyva+ /reference:...

但也有一些定义了DEBUG常量:

C:\windows\Microsoft.NET\Framework64\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /reference

问题

为什么TFS似乎使用Debug配置构建项目的一部分?

0 个答案:

没有答案