簡體   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