MSbuild 命令不会创建 web 部署包,但 Visual Studio IDE 可以

MSbuild command won't create web deploy package but Visual Studio IDE can

我已经尝试了几个不同的命令和 MSBuild 版本,但我仍然无法从中生成 Web 部署包。但是,我可以使用相同的解决方案和 pubxml 文件通过 Visual Studio 2017 创建一个。

我尝试过的:

我一定是在命令行中遗漏了什么,但我不知道是什么。以下是我尝试过的命令:

/p:DeployOnBuild=true
/p:PublishProfile=<location of pubxml file>
/p:PackageLocation=<where to put zip>
/T:Package
/p:PackageAsSingleFile=true
/p:WebPublishMethod=Package

以及 .Net 4.5、VS2017 和 VS2015 的 MSBuild 版本的各种组合。

MSbuild command won't create web deploy package but Visual Studio IDE can

您正在部署的项目类型应该是 WebSite。网站项目的发布过程没有进入构建过程。当您在 VS 中创建发布配置文件时,将创建以下内容:

1) App_Data/PublishProfiles.

下的发布配置文件(.pubxml 文件)

2) 网站根目录中的一个website.publishproj

website.publishproj的目的是方便命令行发布。所以发布文件应该是website.publishproj而不是WebSite1.sln文件。所以发布命令行应该是:

msbuild.exe "website.publishproj" /p:DeployOnBuild=true /p:PublishProfile=FolderProfile /p:PackageLocation="D:\LocalServer\web1.zip" /T:Package /p:PackageAsSingleFile=true /p:WebPublishMethod=Package

之后,您会注意到 MSBuild 创建了 web 部署包到 PackageLocation: