2012-01-10 17 views

答えて

4

Web設定ファイルの特定のセクション(xPathクエリまたは正規表現で指定)を置き換えることができます。そのためには、-declareParam en -setParamコマンドラインスイッチを使用します。

ので

msdeploy -verb:sync -source:apphostconfig="Default Web Site" -dest:package=ParameterPackage.zip -declareParam:name=param,kind=XmlFile,scope=web.config,match=//add/@value 

かそこらのように:

msdeploy -verb:sync -source:package=ParameterPackage.zip -dest:auto -setParam:name=param,value=MyDefaultWebPage.htm 

コマンドラインを使用している場合は、より多くの情報hereを見つけることができます。

IISとの間でパッケージをインポートおよびエクスポートする場合は、parameters.xmlファイルを作成できます。 Vishal Joshiにはmsdeployの使い方に関する良い記事がたくさんあります(たとえばthis

3

はい、これは可能です。私はちょうどhttp://sedodream.com/2012/02/14/HowToUpdateASingleFileUsingWebDeployMSDeploy.aspxでこれにブログを投稿しましたが、私はあなたのために以下の内容もコピーしています。

先日、私はStackOverflowにMSDeployを使ってweb.configを更新することができるかどうか質問しました。私は実際に私の前の投稿の1つのファイルをHow to take your web app offline during publishingに更新したテクニックを使用しましたが、それほど多くは呼び出されませんでした。いずれの場合でも、MSDeployを使用して1つのファイル(この場合はweb.config)を更新する方法を示します。

contentPathプロバイダを使用して、1つのファイルの更新を容易にすることができます。 contentPathを使用すると、1つのファイルまたはフォルダ全体を同期することができます。 IISのアプリケーションパスを使用して、ファイル/フォルダの場所を解決することもできます。たとえば、 "C:\ Data \ Personal \ My Repo \ sayed-samples \ UpdateWebConfig"という名前のローカルフォルダにweb.configファイルがあり、自分のフォルダのDefault Web Siteで実行しているIISサイトUpdateWebCfgを更新したい場合私は以下のコマンドを使用します。私はローカルファイルとIISパス{サイト名}/{AppNameは}/{ファイルパス}を用いてDESTコンテンツパスにソースコンテンツのパスを設定することを確認することができ、上記のコマンドから

%msdeploy% -verb:sync -source:contentPath="C:\Data\Personal\My Repo\sayed-samples\UpdateWebConfig\web.config" -dest:contentPath="Default Web Site/UpdateWebCfg/web.config" 

。この場合、ローカルマシン上のIISで動作しているサイトを更新しています。リモートマシン上で実行されているものを更新するには、ComputerNameと、おそらく他の値を-dest引数に追加する必要があります。

このサンプルの最新のソースは、github repoに表示されます。

+0

ありがとう、私はこれを長い間探してきました。トークンの置き換えは、ビルド時ではなく、ビルド時に行われるため、展開する完全なweb.configをアーカイブして表示することはできません。これを使用して、web.configを、展開パッケージでアーカイブされたweb.configの事前に変換されたコピーで完全に置き換えます。こうすることで、web.configの変換の容易さを落とさずにトークン化の利点を得ることができます –

関連する問題