manifest - list Visual Studio 使用什么来生成 msdeploy 包

标签 manifest msdeploy

我想在 CI 过程结束时将一个带有 msdeploy.exe 的文件夹打包到一个 zip 目标。
我运行以下命令行

msdeploy.exe -verb:sync -source:contentpath="C:\SampleWebApp" -dest:package="c:\SampleWebApp.zip" -declareParamFile="parameters.xml" 

我也喜欢 msbuild 在吐出部署包时生成的 *.deploy.cmd 和 *.SetParameters.xml。我重命名了一组 *.deploy.cmd 和 *.SetParameters.xml 文件并相应地更改了内容。能够在部署环境中运行。

当我运行 *.deploy.cmd 文件时,它会生成文件夹“C:\SampleWebApp”,而不是根据 .SetParameter.xml 中提供的参数创建 iis 应用程序。

经过一番调查,我发现 .cmd 部署到 -dest:auto 这很好。但显然我的包内的包 list 表明该包是 contentPath 而由 msbuild 生成的包在使用 iisApp 提供程序的包内的 archive.xml 中具有更复杂的 list 。

看了下面的帖子

http://blogs.msdn.com/b/webdev/archive/2013/01/09/real-scenario-folder-deployment-scenarios-with-msdeploy.aspx

我相信如果我使用 -source:manifest="Package.xml"和正确的 Package.xml 最终结果应该类似于 VS 包输出

我想也许 *.SourceManifest.xml 是包的 list 。我使用并构建了包但是当我想将它部署到 using .deploy.cmd 它提示 setAclUser

Error: A value for the 'setAclUser' setting must be specified when the 'setAcl' provider is used with a physical path.



有人知道这是 msbuild 使用的 list 吗?

最佳答案

直接回答你的问题:manifest 是基于 MsDeploySourceManifest 动态生成的MSBuild 项目。

您可以使用 contentPath而不是 iisApp通过声明 DeployAsIisApp=false在您的发布配置文件(或命令行 /p:DeployAsIisApp=false )中。这也将禁用 setAcl提供者。

如果您想保留iisApp ,您可以禁用 ACL 提供程序...

  • ... 通过声明 IncludeSetAclProviderOnDestination=false 添加到包中在您的发布配置文件中
  • ... 正在通过 /I:False 部署至 deploy.cmd
  • 关于manifest - list Visual Studio 使用什么来生成 msdeploy 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18359343/

    相关文章:

    visual-studio - 在 Visual Studio 2012 中使用 MSBuild PublishProfile 时的 MSDeploy 跳过规则

    .net - MsDeploy 返回 403 禁止

    c# - 如何在 .csproj 文件中设置 MSDeploy 设置

    java - 以编程方式访问主类的 MANIFEST.MF

    asp.net - 如何使用 MSBuild 为此项目文件夹中的所有文件创建 MSdeploy 包

    android - 即使使用工具 :replace ="android:icon,android:theme" 也出现 list 合并抛出错误

    html - 渐进式 Web 应用程序 - 未检测到 list

    file - msdeploy + setParameters.xml,如何设置Web物理文件位置

    html - 是否可以使用不同的图标将网页添加到主页和启动画面?

    linux - 无法使用 ffmpeg 从 Smooth Streaming Manifest 文件获取信息