12

複数の異なる顧客が使用するアプリケーションを構築しています。各顧客にはかなりの量のカスタム ビジネス ロジックがあり、実行時に読み込まれるアセンブリに巧妙にリファクタリングしました。そのアセンブリの名前は、他の多くの顧客固有の設定と共に、アプリケーションの構成ファイルに保存されます。

現在、顧客 foo のアプリケーションをデバッグするために、次のことを行う必要があります。

  1. プロジェクトディレクトリのファイルシステムに移動して削除しますapp.config
  2. にコピーapp.config.fooapp.config.foo - Copyます。
  3. として名前を変更app.config.foo - Copyapp.configます。
  4. はい、ファイルの拡張子を変更したいことを Windows に伝えます。
  5. Visual Studio に戻ります。
  6. Settings.settingsプロジェクトでアイテムを開きます。
  7. で変更された新しい設定を使用するかどうかを VS が尋ねるので、[はい] を 13 回または 14 回クリックしますapp.config
  8. 閉じますSettings.settings

わかった!これでデバッグの準備が整いました!

Settings.settings開く際の厳格さは不必要であるか、不必要であるように思われます: デフォルト値Settings.csを再生成する必要はありません。しかし、ファイルが変更されたという事実をVSに認識app.configさせ、ビルドがそれを出力ディレクトリにコピーするようにする唯一の方法です。

これを行うには、もっと簡単な方法が必要です。それは何ですか?

4

7 に答える 7

7

次の方法で、Visual Studio に Robert のアプローチを自動化させることもできます。

  1. クライアントごとにビルド構成を定義する
  2. ビルド後のイベントでは、app.config.xxx を bin フォルダーに xcopy するだけです。XXX は、VS でアクセス可能なビルド構成の名前です。次のようなもの: xcopy app.config.$(ConfigurationName) $(OutDir)/app.config

VS は、適切な構成ファイルと共に、クライアントの個別のビルドを個別のフォルダーにドロップします。ビン/クライアント1/ビン/クライアント2/

于 2010-08-22T14:23:28.133 に答える
3

複数の構成ファイルを管理する混乱について考えて、このツールを作成しました: http://envride.codeplex.com/

configuration filesその目的は、自動化された方法で複数を管理しやすくすることです。よろしければご覧いただけましたら幸いです。

于 2011-04-15T12:03:59.230 に答える
3

いくつかの優れたプラクティスについては、この投稿を参照できます:ビルド前イベントを使用した複数の構成ファイル環境の管理

于 2008-10-06T20:30:35.877 に答える
2

複数の VS 構成を使用することを提案した人が数人いましたが、構成を切り替えるたびにソリューションを再構築する必要があることを除いて、これはうまくいったと思います。

やっている間は少しばかげているように見えましたが、1年近く使用しており、非常にスムーズに動作します. 私のプロジェクトでは、app.config.XXX顧客ごとに個別のファイルを作成します。実際のapp.configファイルは生成のみに使用されSettings.cs、正しい設定名とそのデフォルト値がすべて含まれています。ビルド ディレクトリにコピーされることはありません。

次に、顧客を選択できるようにする小さなプログラムを作成しました。このプログラムは、各プロジェクトのディレクトリを単純に通過し、顧客 XXX を選択した場合は と にコピーしapp.config.XXXます。このプログラムがソリューションのルートがどこにあるかを知っている限り (コードを分岐するときは常に少し注意する必要があります)、魅力的に機能します。bin\debug\myprogram.exe.configbin\release\myprogram.exe.config

于 2009-09-03T06:14:05.037 に答える
0

顧客ごとに1つずつ、複数のVisual Studioソリューション構成を定義し、Windowsアプリプロジェクト用にMSBuildターゲットをカスタマイズすることを選択できます。

これをどのように処理したかについての手順をここに文書化しました。異なる環境にデプロイするための複数のapp.configファイル

于 2009-05-11T02:04:21.150 に答える
0

少し掘り下げて回避した後、テストプロジェクトが複数の構成で動作するようになりました。

  1. 構成マネージャーで、必要な構成を作成します
  2. app.config をコピーして貼り付け、構成の名前を追加します。私の場合は AHI、FIV、MGC であるため、構成ファイルは App.AHI.config、App.MGC.config、App.FIV.Config のようになります。好きなように名前を付けることができますが、同じ規則を維持してください
  3. ビルド後のイベントを追加します。私の場合は次のようになります: xcopy $(ProjectDir)app.$(ConfigurationName).config $(TargetDir)$(TargetName).dll.config /y

ここに私の投稿がありますので、詳細を読むことができます

複数の構成でテスト プロジェクトを実行する

于 2016-02-18T22:10:04.680 に答える