.csproj/msbuild TF Build Agent 的 PropertyGroup 配置
.csproj/msbuild PropertyGroup configuration for TF Build Agent
如何使项目构建在 1)(本地)内部编译 Visual Studio 和 2) 由 TF 构建代理上的 TFS 构建服务器触发时表现不同?
我试过了(都没有成功)
<PropertyGroup Condition="'$(TF_BUILD)' == 'true' AND '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PropertyGroup Condition="'$(BuildingInsideVisualStudio)' != 'true' AND '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
我(在这两种情况下)创建了 2 个这样的 属性 组,其中 == 和 != 在第一个条件(应该导致不同行为的那个)和 PropertyGroup 中的不同内容(哪个才是我真正的目标)。
我正在使用 VS 2017 和 TFS 2017。
edit/update:
我发现了我的错误,我编辑了 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>
所以在 TFS Build 上,以下条件应该为真(在 Visual Studio 中为假):
$(BUILD_SOURCESDIRECTORY) != ''
$(TF_BUILD) == 'true'
$(BuildingInsideVisualStudio)' != 'true'
如何使项目构建在 1)(本地)内部编译 Visual Studio 和 2) 由 TF 构建代理上的 TFS 构建服务器触发时表现不同?
我试过了(都没有成功)
<PropertyGroup Condition="'$(TF_BUILD)' == 'true' AND '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PropertyGroup Condition="'$(BuildingInsideVisualStudio)' != 'true' AND '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
我(在这两种情况下)创建了 2 个这样的 属性 组,其中 == 和 != 在第一个条件(应该导致不同行为的那个)和 PropertyGroup 中的不同内容(哪个才是我真正的目标)。
我正在使用 VS 2017 和 TFS 2017。
edit/update:
我发现了我的错误,我编辑了 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>
所以在 TFS Build 上,以下条件应该为真(在 Visual Studio 中为假):
$(BUILD_SOURCESDIRECTORY) != ''
$(TF_BUILD) == 'true'
$(BuildingInsideVisualStudio)' != 'true'