DeployOnBuild标志设置为true时,MSBuild排除项目

时间:2019-02-14 15:36:43

标签: msbuild azure-devops

我有以下msbuild参数:

/m /p:DeployOnBuild=true;PublishProfile="$(PublishProfile).pubxml"

我添加了一个项目,该项目是不应部署的共享.NET Web应用程序,并且不需要发布配置文件。但是,当我的构建代理运行时,它失败了,因为我的项目没有发布配置文件。

是否有一种方法可以排除项目或以某种方式解决此问题,而不必指定要包含的单个项目?

1 个答案:

答案 0 :(得分:1)

  

是否有一种方法可以排除项目或以某种方式解决此问题,而不必指定要包含的单个项目?

AFAIK,恐怕没有这样的方式或属性,我们可以排除要直接在Azure DevOps上部署的项目。

如果您不想指定要包含的单个项目。

一种解决方法,您可以在要发布的项目中定义属性DeployOnBuild,然后在msbuild参数中将值传递给该属性,以仅使此(那些)可以构建项目。

详细信息:

您要发布的已编辑项目,并在.csproj文件中的Import语句之前添加了以下属性组

<PropertyGroup>
  <DeployOnBuild Condition=" '$(DeployProjOrNot)'!='' ">$(DeployProjOrNot)</DeployOnBuild>
</PropertyGroup>

然后是msbuild参数:

/m /p:DeployProjOrNot=true /p:PublishProfile="$(PublishProfile).pubxml"

在这种情况下,由于属性DeployOnBuild的值未设置为 true 。

希望这会有所帮助。