4

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 ファイルの 1 つのセットの名前を変更し、それに応じて内容を変更しました。展開環境で実行できるようにします。

*.deploy.cmd ファイルを実行すると、.SetParameter.xml で提供されるパラメーターに基づいて iis アプリを作成するのではなく、"C:\SampleWebApp" フォルダーが生成されます。

調査の結果、.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が使用するマニフェストであることを知っている人はいますか?

4

2 に答える 2

3

あなたの質問に直接答えるには: マニフェストはMsDeploySourceManifestMSBuild 項目に基づいて動的に生成されます。

パブリッシュ プロファイル (またはコマンド ライン) で宣言するのcontentPathではなく、使用することができます。これにより、プロバイダーも無効になります。iisAppDeployAsIisApp=false/p:DeployAsIisApp=falsesetAcl

保持したい場合はiisApp、ACL プロバイダーを無効にすることができます...

  1. IncludeSetAclProviderOnDestination=false...パブリッシュ プロファイルで宣言することにより、パッケージに追加されます
  2. /I:False... に渡してデプロイ中deploy.cmd
于 2013-08-21T22:57:46.893 に答える
3

以下はマニフェストテンプレートです

<?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 のようなフォルダー パスです。

于 2013-09-14T03:12:20.557 に答える