条件预生成事件命令
Conditional Prebuild Event Commands
背景
目前,我在本地构建解决方案时使用 运行 预构建命令。但是,在我的 VSTS 持续集成服务器上构建时不需要此命令。
问题
有没有办法在本地机器上构建时只运行预构建事件命令?
我知道您可以添加如下条件语句。但是有什么东西可以区分它是本地构建还是 CI 构建?
if $(ConfigurationName) == Local
在 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 WhosebugSample.csproj /p:BuiltOnCi=true
现在它可以在本地运行,您可以使用 /p:BuiltOnCi=true
并将您的 VSTS 任务放入 MSBuild 参数字段中。
背景
目前,我在本地构建解决方案时使用 运行 预构建命令。但是,在我的 VSTS 持续集成服务器上构建时不需要此命令。
问题
有没有办法在本地机器上构建时只运行预构建事件命令?
我知道您可以添加如下条件语句。但是有什么东西可以区分它是本地构建还是 CI 构建?
if $(ConfigurationName) == Local
在 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 WhosebugSample.csproj /p:BuiltOnCi=true
现在它可以在本地运行,您可以使用 /p:BuiltOnCi=true
并将您的 VSTS 任务放入 MSBuild 参数字段中。