条件预建事件命令

时间:2018-01-22 11:25:15

标签: continuous-integration visual-studio-2017 azure-devops pre-build-event

背景

目前,我在本地构建解决方案时运行预构建命令。但是,在我的VSTS Continuous Integration Server上构建时,不需要此命令。

问题

有没有办法在本地计算机上构建时只运行预构建事件命令?

我知道你可以添加如下的条件语句。但有没有什么可以区分它是本地构建还是CI构建?

if $(ConfigurationName) ==  Local 

1 个答案:

答案 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任务。