7

いくつかのプロジェクトにデプロイするために、しばらくの間web.configトランスフォームを使用しています。私が今達成しようとしているのは、Web Deployの「パッケージのインポート」画面で、環境ごとに調整された、のいくつかの変数をチェックおよび更新するように求めるプロンプトを表示することです

Parameters.xmlを使用してこれらの編集可能な変数を導入できることは知っていますが、さまざまな環境ターゲットのデフォルトを更新する方法をまだ見つけていません。

ユーザーに「 specialServer 」AppSettingを編集させ、 NewEnvターゲット用にコンパイルしたときに異なるデフォルトを表示させたいという、次のきちんとした、しかし重複しない例を考えてみてください。

Parameters.xmlのサンプルエントリ:

<parameter name="Special server" description="" tags="" defaultValue="server1-dev.domain">
    <parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='specialServer']/@value" />
</parameter>

Web.NewEnv.configのサンプル変換、

<appSettings>
    <add key="specialServer"
        value="other-server.domain2"
        xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
</appSettings>

Web配置のプロンプトのサンプル:

ここに画像の説明を入力してください

さまざまなビルドターゲットのデフォルト値を更新する方法に関する提案はありますか?

ありがとう。

4

2 に答える 2

1

新しいパラメーター定義ファイルを生成し、WebDeploy環境ごとにパッケージに埋め込む必要があります。

これにより、環境ごとに異なる展開パッケージが提供され、それらのパラメーターに異なるデフォルト値を指定できるようになります。明らかにそうすると、パラメーターが変換され、基本的に構成に焼き付けてしまう場合のポイントが損なわれますが、それが目的を達成する唯一の方法です。

このアプローチはお勧めしませんが、ニーズに合うかもしれません。

于 2014-01-21T08:24:23.433 に答える
1

バッチ スクリプトを使用して msdeploy を呼び出します。これにより、parm で Parameters.xml ファイルを指定できます。次に、複数の Parameters.xml ファイル (環境ごとに 1 つ) を使用して、次のように msdeploy を呼び出すだけです。

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:package='D:\mysite.zip' -dest:auto,computerName="testcomp1",includeAcls="False" -verb: sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"D:\mysite.test.SetParameters.xml"

于 2017-07-24T16:03:44.173 に答える