繁体   English   中英

Visual Studio用于生成msdeploy包的清单

[英]What manifest visual studio is using to generate msdeploy package

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

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

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

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

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

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

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

以下是清单模板

<?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和[PATH1ESCAPED]应该是相同的路径,但使用后缀和前缀^ $转义,如^ 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM