Mas*_*dow 0 msbuild cmd team-build post-build-event
我目前必须有两个独立的属性组,它们之间只有两个差异,根据条件设置为具有一个或另一个触发器.这就是我所拥有的:
<!--CAME FROM TEAMBUILD-->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' != 'Debug|AnyCPU' AND '$(Configuration)|$(Platform)' != 'Release|AnyCPU' AND '$(BuildingInsideVisualStudio)' != 'true' ">
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
set MAGE="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\mage.exe"
set APPFILE=$(TargetDir)$(TargetName).application
set MANIFEST=$(TargetPath).manifest
set CERT=$(ProjectDir)$(TargetName).pfx
set PROJECTNAME=$(TargetName)
set CONFIGURATION=$(ConfigurationName)
set TARGETDIR=$(TargetDir)
set TEAMBUILD=$True
Powershell -File "$(ProjectDir)POSTBUILD.ps1"
</PostBuildEvent>
</PropertyGroup>
<!--CAME FROM PUBLISH COMMAND-->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' != 'Debug|AnyCPU' AND '$(Configuration)|$(Platform)' != 'Release|AnyCPU' AND '$(BuildingInsideVisualStudio)' == 'true' ">
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
set MAGE="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\mage.exe"
set APPFILE=$(TargetDir)$(TargetName).application
set MANIFEST=$(TargetPath).manifest
set CERT=$(ProjectDir)$(TargetName).pfx
set PROJECTNAME=$(TargetName)
set CONFIGURATION=$(ConfigurationName)
set TARGETDIR=$(TargetDir)
set TEAMBUILD=$False
Powershell -File "$(ProjectDir)POSTBUILD.ps1"
</PostBuildEvent>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
有没有办法根据post build事件中的$(BuildingInsideVisualStudio)值设置teambuild值?就像是
如果($(BuildingInsideVisualStudio)=='true')设置TEAMBUILD = $ True
甚至是什么样的
set TEAMBUILD = $$(BuildingInsideVisualStudio)?
你已经在使用它:Condition.您只需要提取额外的步骤来创建将用作TEAMBUILD值的属性.例如:
<PropertyGroup Condition='$(BuildingInsideVisualStudio)' != 'true' ">
<TeamBuildValue>FALSE</TeamBuildValue>
</PropertyGroup>
<PropertyGroup Condition='$(BuildingInsideVisualStudio)' == 'true' ">
<TeamBuildValue>TRUE</TeamBuildValue>
</PropertyGroup>
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
...
set TEAMBUILD=$(TeamBuildValue)
...
</PostBuildEvent>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
我可能会尝试选择/其他......而不是 == != 只是一个偏好。因为有一天……你可能会有第三种选择。
“Otherwise”子句(又名,使用一些默认值)更加明确。
<Choose>
<When Condition=" '$(Computername)'=='MySuperComputer01' ">
<PropertyGroup>
<FavoriteFood>Peanuts</FavoriteFood>
<FavoriteColor>Red</FavoriteColor>
</PropertyGroup>
</When>
<When Condition=" '$(Computername)'=='MySuperComputer02' ">
<PropertyGroup>
<FavoriteFood>Apples</FavoriteFood>
<FavoriteColor>Yellow</FavoriteColor>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<FavoriteFood>CrackersDefault</FavoriteFood>
<FavoriteColor>OrangeDefault</FavoriteColor>
</PropertyGroup>
</Otherwise>
</Choose>
Run Code Online (Sandbox Code Playgroud)