0

3 つの異なるクライアント用に 3 つの異なるソリューションを作成しましたが、これらのソリューションは、それぞれに固有の画像、XML リソース ファイル、および Web サービス参照を除いて、同じ機能、クラス、メソッド、解像度を持つアプリ用です。 1。

これらすべてのアプリに対して、VS2010 IDE で編集用にエラーなしで開くことができるソリューションを 1 つだけ用意したいと考えています。そのため、特定のアプリをビルドまたは公開する必要がある場合は、必要なクライアントを設定して、ビルドまたは公開に進みます。

クラスや画像の名前と同じように、XML ファイル名も同じになることを考慮することが重要です。違いは内容になりますが、名前は常に同じです。

私の意図は、作業するソリューションを 1 つだけにして、多くのソリューションを維持するための労力を減らすことです。

私の会社では、もうすぐその3社以上のクライアントが来るので、それをどう維持していくかが心配です。最善の方法は、ソリューションを 1 つだけ持つことです。新しいクライアント用に新しいアプリを生成する必要がある場合は、いくつかのもの (リソースや画像など) を変更または含めて、新しいクライアント フォルダーにコンパイルするだけです。

出来ますか?もしそうなら、どのように?

4

2 に答える 2

1

1 つのオプションは、次のようなマスター ソリューションを用意することです。

  • 実際のアプリケーションとすべての共有コードを含む「テンプレート」プロジェクト
  • すべてのクライアント向けのプロジェクト

クライアントのプロジェクトでは、共有プロジェクトからのファイルへのリンクをファイルに含めることができます。次に、これらの各プロジェクトで、それらにのみ固有のファイルを追加できます。

この種の構造では、テンプレート プロジェクトに変更を加えるたびに、すべてのクライアント プロジェクトも同様に更新されます。これは、クライアント プロジェクトがテンプレート プロジェクトへのポインタを持っているだけだからです。

この種のセットアップの良いリファレンスは、Json.Net Code Baseです。そこには、さまざまな構成すべてのソリューションとプロジェクトがありますが、それらはすべて同じファイルを共有しています。

xml ファイルの名前が適切であることを確認するという点では、メイン アプリケーションにいくつかのチェックを入れて、必要なファイルがすべて含まれていることを確認するか、ビルド プロセスにチェックを追加することをお勧めします。

于 2013-01-30T21:27:56.873 に答える
0

これに取り組む方法はたくさんあります。

私のお気に入りは、おそらく Visual Studio の外部で、何らかのビルド前のステップを実行することです。これは、ビルドを行う前にファイルを正しいものに置き換えるだけです。これは、自動化と拡張が容易です。

3 人以上の顧客のためにビルドする場合は、Visual Studio ビルドから他の自動ビルド システム (コマンド ラインからの MSBuild や、TeamCity や CruiseControl などからのビルドなど) に切り替えることを検討する必要があると思います。ビルドが自動化されている (そして堅牢な) 場合、スケーリングがはるかに簡単になります。


ファイルのアイデアが気に入らない場合は、他にも試すことができるものがたくさんあります。

  • 上記と同様の手順を試すこともできますが、ビルド前の手順を使用して VS 内で実行することもできます。
  • .csproj ファイル内で条件付きノードを使用して、プロジェクト構成を介してファイルを切り替えることができます
  • クライアント固有のリソースを別のアセンブリにシフトしてから、実行時に GetResourceStream (または同様のもの) を使用してリソースを抽出することができます。

しかし、これらのどれも私にとって良いとは感じません!

于 2013-01-30T22:39:51.940 に答える