【问题标题】:MSBuild publish fails to create zip, and also strangely deletes project code files and directoriesMSBuild publish创建zip失败,还奇怪删除了项目代码文件和目录
【发布时间】:2021-05-25 20:15:03
【问题描述】:

我们有一个使用以下技术开发的解决方案:

  • Visual Studio 2015

  • .NET 框架 4.8

该解决方案包含很多我们部署到 IIS 服务器的 WCF Web 服务

我计划让 MSBuild 命令行的命令进行清理、构建、发布。

我想使用 MSBuild 命令行来

  • 干净

  • 构建

  • 发布(特别想发布到 zip 文件,这就是过程出现问题的地方)

我将使用 MSDeploy 部署到 IIS 服务器

由于我们使用的是Visual Studio 2015,它对应Visual Studio 14.0版本(参考:https://en.wikipedia.org/wiki/Microsoft_Visual_Studio#History

因此,我们应该使用以下 MSBuild 可执行文件(参考:https://help.veracode.com/r/c_msbuild_paths):

C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild.exe
  1. 开始以管理员模式运行 Dos 命令提示符

  2. 让我们清理项目

D:\Blah\Blah\WCFService>"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" /t:Clean

  1. 让我们构建项目

D:\Blah\Blah\WCFService>" C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" /t:Build /p:Configuration=Dev

  1. 问题在于发布 (注意:我不想在构建时部署,这就是设置 DeployOnBuild=false 的原因)

D:\Blah\Blah\WCFService> “C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" /t:_WPPCopyWebApplication;发布 /p:配置=开发
/p:EnvironmentName=Dev WCFService.csproj

/p:DeployOnBuild=false
/p:WebPublishMethod=包
/p:PackageAsSingleFile=true
/p:DeployTarget=包 /p:PackageLocation="C:\temp\OutputDir\WCFService.zip /p:CreatePackageOnPublish=True
/p:平台=AnyCPU /详细:诊断

问题是当我发布时出现以下错误,并且我的项目的文件和目录被奇怪地删除了

"D:\Blah\Blah\WCFService\WCFService.csproj" (_WPPCopyWebApplication;发布目标) (1) -> (_WPPCopyWebApplication 目标)-> C:\Program 文件 (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(2516,5): 错误:复制文件 obj\Dev\TransformWebConfig\trans 形成\Web.config 到 D:\Blah\Blah\WCFService\Web.config 失败。可以 找不到文件“obj\Dev\TransformWebConfig\transformed\Web.config”。 [D:\Blah\Blah\WCFService\WCFService.csproj]

0 个警告 1 个错误

谁能告诉我正确的发布 msbuild 命令,该命令将正确创建 zip 文件,并且不删除我的项目代码?

【问题讨论】:

  • 您是否尝试将DeployOnBuild 设置为true
  • 但我现在只想创建 zip。我不想在构建时进行部署,这就是设置 DeployOnBuild=false 的原因。我计划让 MSBuild 命令行的命令执行清理、构建、发布。我将有一个单独的 MSDeploy 命令行。

标签: deployment visual-studio-2015 msbuild publish msdeploy


【解决方案1】:

(另外,这仍然不会创建 zip 文件,但会正确发布,并且不会删除任何项目代码文件和目录)

这有点奇怪。我不知道为什么,但是通过指定我们可以使用 Visual Studio 创建的 Visual Studio Publish Profile pubxml 文件来调用 MSBuild 命令很重要

在 Visual Studio 2015 中,

  1. 右键单击有问题的项目

  2. 点击“发布....”选项

修改发布的配置,保存配置,应该在以下目录:

C:\BlahBlah\BalhBlah\WCFService\Properties\PublishProfiles\

只需通过将 PublishProfile 属性指定为 Visual Studio Publish Profile pubxml 文件的值来运行 msbuild

MSBuild.exe "C:\BlahBlah\BalhBlah\WCFService.csproj" /p:DeployOnBuild=true /p:PublishProfile="C:\BlahBlah\BalhBlah\WCFService\Properties\PublishProfiles\DEV.pubxml" /详细:诊断

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多