msbuild 只部署而不构建

Posted

技术标签:

【中文标题】msbuild 只部署而不构建【英文标题】:msbuild just deploy without build 【发布时间】:2018-01-19 03:07:58 【问题描述】:

我知道我可以这样做来构建部署:

msbuild mysln.sln /p:DeployOnBuild=true /p:PublishProfile=<profile-name>

但我想一步构建,将这些工件移动到另一个位置,然后部署。

我可以使用 msdeploy.exe 进行部署,但我更愿意使用 msbuild 命令(它将为我定位并使用正确的 args 调用 msdepoy)执行此操作,就像我现在做的那样,但不是DeployOnBuild 我只想部署。

编辑:再补充一点,创建一个 msdeploy 包很痛苦,而 msbuild 已经为我完成了这一切,这就是为什么我想让它为我编排这个。

编辑:有没有一种方法可以让我准确地看到 msbuild 正在运行哪些 msbuild/msdeploy 命令来创建和部署包?我想如果我可以记录这些确切的命令,我可以手动完成并让 msbuild 创建包并运行 msdeploy 命令来部署它。但我看不到 msbuild 实际上在做什么。

【问题讨论】:

【参考方案1】:

您可以在解决方案级别定义配置,告诉 msbuild 必须构建/发布/同时构建/发布哪个项目。显然,要启用“发布”选项,您还必须为要部署的项目设置发布配置文件。但是您应该可以简单地取消选中“构建”。

以下是有关解决方案配置以及如何从 msbuild 命令中引用这些配置的一些信息:

MSDN Solution Configuration

所以,在你的情况下,我会做一个配置来构建和一个部署。

【讨论】:

以上是关于msbuild 只部署而不构建的主要内容,如果未能解决你的问题,请参考以下文章

仅使用 MSBuild 进行 TFS2012 夜间部署

MSBuild + Bamboo 部署:构建一次并进行多次部署?

让 MSBuild 和 CruiseControl .NET 构建和部署 VS2010 数据库项目

ClickOnce部署最低要求版本自动增加MSBuild

MSBuild 中的 ProjectReference 配置

为啥 ExcludeFromPackageFolders 不适用于 msbuild?