.csproj/msbuild TF生成代理的PropertyGroup配置



如何使项目构建在1(Visual Studio内部的(本地(编译和2(由TF build Agent上的TFS build Server触发时表现不同?

我试过(两次都没有成功(

<PropertyGroup Condition="'$(TF_BUILD)' == 'true' AND '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PropertyGroup Condition="'$(BuildingInsideVisualStudio)' != 'true' AND '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">

我(在这两种情况下(都创建了两个这样的属性组,其中==和!=交换了第一个条件(应该导致不同行为的条件(和PropertyGroup中的不同内容(这正是我真正的目标(。

我正在使用VS 2017和TFS 2017。

编辑/更新:

我发现了自己的错误,那就是我编辑了AnyCPU PropertyGoup并构建了x86。

实际上,所有这些都有效,包括Daniel Mann的建议。我用错了房地产集团。

由于我发现这些信息很难找到,我希望这份总结能对将来的人有所帮助。

TF和本地(VS(构建上的不同属性值可以像一样编写

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
...
<Optimize Condition="'$(BUILD_SOURCESDIRECTORY)' != ''">true</Optimize>
<Optimize Condition="'$(TF_BUILD)' != 'true'">false</Optimize>
..redundant..
<Optimize Condition="'$(BuildingInsideVisualStudio)' == 'false'">true</Optimize>
...
</PropertyGroup>

因此,在TFSBuild上,以下条件应该为true(在VisualStudio中为false(:

$(BUILD_SOURCESDIRECTORY) != ''
$(TF_BUILD) == 'true'
$(BuildingInsideVisualStudio)' != 'true'

最新更新