1

開発者コンピューター、ビルドサーバー、テストサーバー、本番サーバー、本番内部、本番外部など、さまざまなシナリオに対応する3〜5個の異なるweb.config.xxxがあるプロジェクトがいくつかあります。xxxは、それが属する環境を説明する単なるマーカーです。

これらのweb.configはほとんど同じであり、connectionsstrings、integrationpoints、mailserverなどは異なりますが、構造はほぼ同じです。したがって、web.configに値を追加する場合は、それをいくつかのファイルに書き留める必要があります。値を変更する場合は、ソリューション内のすべてのweb.configで値を変更する必要があります...非常に簡単です。後でやろうと思います。名前を変えるかもしれませんが、これが正しいかどうかはわかりません。そのため、本番環境で値を見逃すことがあり、それは恥ずかしいことです。問題は、これが簡単に解消できるはずの問題であるということです。

この状況に対処する方法は?ビルド構成をチェックして簡単な置換を行うことができる「pre-build-events」を調べ始めています。デバッグでビルドしている場合は、{db}をDevDBに変更します。ビルドサーバー用にビルドする場合、ビルド構成を作成して、その環境に適した代替を行うことができます。

これを処理するための好ましい方法はありますか?

4

1 に答える 1

1

構成変換の恩恵を受けるようです。

Webサイトをデプロイする場合、デプロイされたアプリケーションのWeb.configファイルの一部の設定を開発用Web.configファイルとは異なるものにする必要があることがよくあります。たとえば、デバッグオプションを無効にし、接続文字列を変更して、異なるデータベースを指すようにすることができます。

以下のソースは、web.configに変更を加えるために、デプロイメント中に自動的に適用されるweb.config変換ファイルを構成する方法を示しています。

出典:方法:WebアプリケーションプロジェクトをデプロイするときにWeb.configを変換する

注:この手法は、任意の数のデプロイメント(ステージング、テスト、プロダクション、Foo、Barなど)に適用できます。

通常、プロジェクトには1つのweb.configファイルがあります。これに関連して、web.production.config、web.staging.configなどがあります。各web。*。configファイルは、web.configのさまざまな値を変更するための言語を少し含む変換になります。接続文字列など。これらの各変換ファイルは、展開中に通常選択する展開オプションに関連付けられています(Visual Studioの上部にある小さなドロップダウンで、通常は[デバッグ]に設定されています)。

于 2012-06-14T15:23:22.257 に答える