背景
目前我在本地构建解决方案时运行一个预构建命令。然而,在我的VSTS持续集成服务器上构建时,不需要运行此命令。
问题
有没有办法只在本地机器构建时运行预构建事件命令?
我知道可以添加像下面这样的条件语句。但是否有区分本地构建和CI构建的方法?
if $(ConfigurationName) == Local
目前我在本地构建解决方案时运行一个预构建命令。然而,在我的VSTS持续集成服务器上构建时,不需要运行此命令。
有没有办法只在本地机器构建时运行预构建事件命令?
我知道可以添加像下面这样的条件语句。但是否有区分本地构建和CI构建的方法?
if $(ConfigurationName) == Local
RunsOnCI
,并将其默认设置为false
。然后,您可以在构建定义中将其设置为true
。if $(BuiltOnCI) == true (
echo "Hello World!"
)
接下来,您需要编辑您的.csproj
文件,并添加默认值为BuiltOnCI的属性:
<PropertyGroup>
...
<BuiltOnCI>false</BuiltOnCI>
</PropertyGroup>
您可以通过在命令行上运行MSBuild来测试更改。像这样运行它不会显示“Hello World”消息:
msbuild myproject.csproj
msbuild StackoverflowSample.csproj /p:BuiltOnCi=true
/p:BuiltOnCi=true
,并将其放入你的VSTS任务中。
/p:BuiltOnCI=true
,并在我的解决方案的预构建事件中设置了此条件:if "$(BuiltOnCI)" != true
。 - Dan Cundy