【问题标题】:What manifest visual studio is using to generate msdeploy package清单 Visual Studio 使用什么来生成 msdeploy 包
【发布时间】:2013-08-23 22:30:57
【问题描述】:

我想在 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 这很好。但显然我在包内的包清单表明这个包是 contentPath 而由 msbuild 生成的包在使用 iisApp 提供程序的包内的 archive.xml 中有更复杂的清单。

看了下面的帖子

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 是包的清单。我使用并且它构建了包但是当我想将它部署到 using .deploy.cmd 它抱怨 setAclUser

错误:必须指定“setAclUser”设置的值,当 'setAcl' 提供程序与物理路径一起使用。

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

【问题讨论】:

    标签: manifest msdeploy


    【解决方案1】:

    直接回答您的问题:清单是根据MsDeploySourceManifest MSBuild 项动态生成的。

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

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

    1. ...通过在您的发布配置文件中声明 IncludeSetAclProviderOnDestination=false 添加到包中
    2. ...通过将/I:False 传递给deploy.cmd 进行部署

    【讨论】:

    • 谢谢理查德,但我想我找到了正确的 manifest.xml 和 parameter.xml 请看我的回答
    【解决方案2】:

    以下是清单模板

    <?xml version="1.0" encoding="utf-8"?>
    <sitemanifest>
      <iisApp path="[PATH1]"/>
    </sitemanifest>
    

    和Parameter.xml模板

    <parameters>
      <parameter name="IIS Web Application Name" defaultValue="WEBSITENAME" tags="IisApp">
        <parameterEntry kind="ProviderPath" scope="IisApp" match="^[PATH1ESCAPED]$" />
      </parameter>
      <!-- appSetting section-->
    </parameters>
    

    注意:[PATH1] 应替换为您的文件夹路径,例如 C:\MY.FOLDER\WWW 和 [PATH1ESCAPE] 应该是相同的路径,但使用后缀和前缀 ^ $ 进行转义 ^C:\MY.FOLDER\WWW$

    然后就可以调用了

    "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:manifest="Manifest.xml" -dest:package=%1 -declareParamFile="parameters.xml" 
    

    %1 是文件夹路径,如 C:\MY.FOLDER\WWW

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      • 2022-07-14
      • 1970-01-01
      • 2019-09-06
      • 2022-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多