目前,我在本地构建解决方案时运行预构建命令。但是,在我的VSTS Continuous Integration Server上构建时,不需要此命令。
有没有办法在本地计算机上构建时只运行预构建事件命令?
我知道你可以添加如下的条件语句。但有没有什么可以区分它是本地构建还是CI构建?
if $(ConfigurationName) == Local
答案 0 :(得分:1)
在VSTS中使用Visual Studio build任务时,您可以从任务配置中传递MSBuild参数。这样您就可以定义自己的自定义属性,例如RunsOnCI
,并将其默认为false
。然后,您可以在构建定义中将其设置为true
。
假设您在预构建事件中有以下代码:
if $(BuiltOnCI) == true (
echo "Hello World!"
)
然后,您需要编辑.csproj
文件并使用默认值添加BuiltOnCI属性:
<PropertyGroup>
...
<BuiltOnCI>false</BuiltOnCI>
</PropertyGroup>
您可以通过在命令行上运行MSBuild来测试更改。像这样运行它不会显示Hello World消息:
msbuild myproject.csproj
在命令行上传递参数可以将其设置为true:
msbuild StackoverflowSample.csproj /p:BuiltOnCi=true
现在它在本地工作,你可以使用/p:BuiltOnCi=true
并在MSBuild参数字段中输入你的VSTS任务。