背景
目前,我在本地构建解决方案时运行预构建命令。但是,在我的 VSTS 持续集成服务器上构建时不需要此命令。
问题
有没有办法在本地机器上构建时只运行预构建事件命令?
我知道您可以添加如下条件语句。但是有什么东西可以区分它是本地构建还是 CI 构建?
if $(ConfigurationName) == Local
最佳答案
使用 Visual Studio build 时VSTS 中的任务,您可以从任务配置中传递 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
并将您的 VSTS 任务放入 MSBuild 参数字段中。
关于continuous-integration - 条件预生成事件命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48380492/