2

私の以前の Web アプリケーションのほとんどは、ピラミッド (python) フレームワークを使用して構築されています。ピラミッドを使用すると、アプリケーションを開発モードまたは本番モードで実行できます。これは、アプリケーションへの起動引数の 1 つとして production.ini または development.ini 設定ファイルの場所を提供することによって実現されます。

このファイルには、ログ レベル、エラー レポート、およびデータベース接続に関する設定が含まれています。.net の世界でこれらのファイルに相当するものは、web.config ファイルのように見えます。新しい web.config を作成し、適切な名前に変更し、アプリケーションを再起動するだけで、さまざまな実行環境を作成できると思います。

私の質問は、アプリが正しい *.config ファイルをターゲットにするようにするにはどうすればよいですか (仮に、それらを production.config および development.config と呼びます)。

4

2 に答える 2

1

MSDeployを見たいと思うかもしれません。私はこれを同様の状況で使用し、単一のパラメーター ファイル (XML、ファイルパス、テキスト ファイルなどであるかどうかに関係なく、置き換えられるもの) と複数のセット パラメーター ファイルを確立するのに役立ちました [declareParam について読むことができます。ここでsetParam 。

あなたの構造をあまり知らなくても、基本的にこれの効果のために何かをするつもりです.

msdeploy -verb:sync -source:contentPath=c:\pathtosite\root -dest:package=c:\package.zip -declareParamFile=c:\packageparameters.xml"

次のような各環境に関連するパラメーター ファイルを作成します。

development.xml
staging.xml
production.xml 

ここにパラメータファイルの設定の良い説明があります)

次に、展開のために何かがあります(使用するプロバイダーによって異なります)

msdeploy -verb:sync -source:package=c:\package.zip -dest:contentPath=c:\inetpub\production -setParamFile=c:\<environment>.xml

プロバイダーの数はかなり広範囲です。コンテンツ パスは簡単な例ですが、IIS から IIS などに直接プルできます。かなり堅牢です。

于 2012-05-12T23:30:11.383 に答える
0

別の web.config ファイルを指定する方法を私が知っている方法はありません。ただし、.NET 4.0 以降では、ビルド時にベースの web.config を変更する web.config 変換と呼ばれるものを使用できます。使用しているビルド構成に応じて適用される Web.Debug.Config と Web.Release.Config を使用できます。これらは通常の web.config ファイルではなく、基本の web.config を変更する 変換ファイルであることに注意してください。

関連する基本的なアイデアの詳細とウォークスルーについては、MSDN のこちらを参照してください。web.config 変換ファイルの基本的な例は次のとおりです。これは、リリース ビルドに別の接続文字列を使用するように接続文字列を変更します。

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <connectionStrings>
        <add name="MyDB" connectionString="ReleaseSQLServer" 
            xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
    </connectionStrings>
</configuration>
于 2012-05-12T22:52:39.200 に答える