Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio .csproj/msbuild属性组TF生成代理的配置_Visual Studio_Tfs_Msbuild_Msbuild Propertygroup - Fatal编程技术网

Visual studio .csproj/msbuild属性组TF生成代理的配置

Visual studio .csproj/msbuild属性组TF生成代理的配置,visual-studio,tfs,msbuild,msbuild-propertygroup,Visual Studio,Tfs,Msbuild,Msbuild Propertygroup,如何使项目生成在1)(本地)Visual Studio内部编译和2)由TF生成代理上的TFS生成服务器触发时表现不同 我试过(两次都没有成功) 我(在这两种情况下)创建了两个这样的属性组,分别为==和!=交换了第一个条件(应该导致不同行为的条件)和PropertyGroup中的不同内容(这是我真正的目标) 我正在使用VS 2017和TFS 2017 编辑/更新: 我在自己的方式中发现了错误,那就是我编辑了AnyCPU属性组并构建了x86。实际上,所有这些工作,包括Daniel Mann的建议

如何使项目生成在1)(本地)Visual Studio内部编译和2)由TF生成代理上的TFS生成服务器触发时表现不同

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


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

我正在使用VS 2017和TFS 2017

编辑/更新:


我在自己的方式中发现了错误,那就是我编辑了AnyCPU属性组并构建了x86。

实际上,所有这些工作,包括Daniel Mann的建议。我在错误的propertygroup上使用了它

因为我发现这个信息很难找到,我希望这个总结对以后的人有所帮助

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>

可能的副本用于解决您的编辑:您不需要创建任何环境变量。我给出的答案只使用构建代理上始终存在的内置环境变量。我现在正在检查它。桌面上的变量为空,但它仍然选择了错误的属性组。也许还有别的东西坏了。好吧,我知道了。我在一个错误的财产组。现在我也认为上述方法应该有效。至少我检查了TF_构建,结果还可以。另外,我注意到我可以在属性本身上设置条件,而不仅仅是在propertygroup上。现在想知道如何处理这个问题。我想它会以复制品的形式关闭?对于其他人来说,了解其他msbuild宏可能仍然很有帮助。我到处都找不到推荐人。谢谢大家!@AndreasReiff,如果您想离开此线程以帮助其他人了解其他msbuild宏,您可以发布此问题的答案并将其标记为answer,这对阅读此线程的其他社区成员非常有益。
<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>
$(BUILD_SOURCESDIRECTORY) != ''
$(TF_BUILD) == 'true'
$(BuildingInsideVisualStudio)' != 'true'