更新: 以下の Microsoft の公式回答を参照してください。これを達成するための非公式のハックがあると思うので、質問はそのままにしておきます。
更新 2:この問題について、WebDeploy 機能の要求を Microsoft に投票してください。
私は自分のショップで MSDeploy を頻繁に使用しており、展開時に展開プロバイダーの "追加のプロバイダー設定" を変更する msdeploy パラメーターを定義するのに何時間も費やしました。オンラインで検索したり、Reflector on the Web Deploy バイナリを使用したりすると、これについては何もわかりませんでした。
具体的には、dbDacFx プロバイダーのDacDeployOptionsの「DropObjectsNotInSource」および「BlockWhenDriftDetected」設定をコマンド ライン オプションで操作できるようにしようとしています。
manifest.xml ファイルから次のような DACFx オプションを変更するために、考えられるすべての XPath 式を試しました。
<sitemanifest>
<dbDacFx path="C:\Database.dacpac"
DropObjectsNotInSource="False"
BlockOnPossibleDataLoss="True" />
</sitemanifest>
setParam
種類で msdeploy を使用すると、 でDeploymentObjectAttribute
一致するノードを見つけることが常に失敗します//@DropObjectsNotInSource
。
DropObjectsNotInSource
パッケージの archive.xml ファイル内のプロバイダーのノードの属性「MSDeploy.MSDeployProviderOptions」に値が実際に格納されているため、失敗したと思われます。(この属性値は、Microsoft.Web.Deployment.DeploymentProviderOptions の .Net シリアル化されたインスタンスのように見えるため、単純な古い XPath で操作するのは非常に困難です。)
これらの追加のプロバイダー設定をデプロイ時に変更することはできますか?
更新: Microsoft Web Deploy チームに、ブログとここへの投稿を通じてメールを送信しました。Web Deploy チームは素晴らしい回答をしてくれました (Harsh と Ranjith に感謝します!)。残念ながら、公式の言葉では、これはサポートされていません。
差出人: ランジス ムッカイ ラマチャンドラ ...@microsoft.com
件名: RE: MSDeploy setParam は「追加のプロバイダー設定」を変更できますか?
日付: 2013 年 2 月 15 日午後 5 時 20 分 46 秒 EST
宛先: Web 配置サポート
こんにちは、スティーブです。
申し訳ありませんが、これは現在サポートされていません。
ありがとう、ランジット