出于开发目的,我的团队定义了一个后期生成事件,用于在本地打包和发布nuget包。这个步骤在构建vsts期间是不必要的,因为我们在构建期间定义了一个步骤来打包nuget包并将其发送到一个没有符号的不同服务器。现在这个步骤在我们运行的任何构建中都会执行。如何仅在生成服务器中防止这种情况?
为此,您必须深入挖掘msbuild。您需要添加一个条件来检查在生成的上下文中运行时设置的环境变量之一,并且仅当该环境变量为空时才运行。
例如,
<PropertyGroup> <PostBuildEvent Condition=" '$(BUILD_SOURCESDIRECTORY)' == '' ">echo Hello World</PostBuildEvent> </PropertyGroup>
BUILD_SOURCESDIRECTORY 是在生成的上下文中运行时填充的环境变量,但通常不会在开发人员的桌面上填充。因此, echo Hello World 只在该值为空时运行。
BUILD_SOURCESDIRECTORY
echo Hello World