1

正常にビルドされる .NET プロジェクトがあるとします。ここで、DEV、QA、PROD などのさまざまな環境に合わせて選択的にビルドする必要があります。対応する接続​​文字列やその他の設定を含めるには、それぞれ独自の構成ファイル (たとえば app.config) が必要です。

Scott Hanselmanのこのような単純なビルド前のスクリプトを見てきました。それは機能しますが、私の問題は、ビルド前のステップでソースが変更されることです。プロジェクトをビルドするだけでは、ソース ファイルが上書きされ、ソース管理の変更が不必要にトリガーされます。

VS/MSBuild の外部でスクリプトを作成して、展開後に構成ファイルをそこに配置することもできますが、もっと良い方法があることを本当に望んでいます。おそらく、VS/MSBuild で自己完結型の方法でしょうか?

ターゲット サーバーへの展開戦略は柔軟です。パッケージ化の前に構成を行う必要があるセットアップ プロジェクトを検討しました。または、xcopy インストールでもかまいません。

アイデア?

4

2 に答える 2

2

2012 年 1 月 9 日更新- このプロジェクトでチーム ビルドの使用を開始しましたが、ビルド マシンにWindows SDKをインストールしたくありませんでした。私はいくつかの調査を行い、これを行う方法である SlowCheetah に出くわしました。これをチーム ビルドで実行するためのブログ投稿もあります。


app.config ファイルの Visual Studio XML 変換。Web 関係者向けに追加されたものを拡張します。私はそれを理解していませんでしたが、以下はそれをセットアップするための優れたリソースです:

この記事から、使用方法の説明が記載された .targets ファイルを入手できます。最新情報については、記事の最後にある更新情報を必ずお読みください。

また、 Vishal Joshi のブログから、プロジェクトのすべてをセットアップする方法を説明している情報も必要になります。ソリューション エクスプローラーで .config ファイルを相互にネストするなどの単純なことで、私は喜びを感じます。

まだ持っていない場合は、.NET Framework 4.0 SDK をインストールする必要があります。これは、変換ツールがそこからツールを使用するためです。

これらの記事には、変換構文を理解するためのヒントとリンクがあります。サンプルを1つか2つ見た後は、かなり簡単です。

幸運を!

于 2011-03-22T16:11:49.987 に答える
1

デプロイ先の各環境に固有の設定を含む構成ファイルを含む、プライマリ プロジェクトからサブフォルダーを作成します。ビルド/デプロイすると、これらのファイルは bin フォルダーのサブディレクトリまたはデプロイ ターゲットにプッシュされます。次に、MSBuild スクリプト、VS ビルド後の動作、またはコミット ハンドラーのいずれかをインストール パッケージ (おそらく上記のすべて) で定義し、次のいずれかを行います。

  • 必要な子構成ファイルを具体的に参照するように app.config を変更します。または
  • 子構成の 1 つを、app.config が探している定義済みの場所と名前にコピーします。

メインの app.config または web.config から子ファイルへの参照は次のようになります。

<connectionStrings configSource="MySeperateConnStringsFile.config" />  
<appSettings configSource="MySeperateAppSettingsFile.config" />

これは、カスタム構成セクションでも行うことができます。通常どおり、メイン ファイルの configSections 領域にこれらのセクションを必ず設定してください。

于 2010-09-21T18:42:47.437 に答える