9

複数の Visual Studio プロジェクトのプロパティを手動で同期するのは面倒です。では、複数のプロジェクト間でプロパティを共有するにはどうすればよいでしょうか?

編集: 条件付きコンパイル シンボル、警告やエラーの処理などのプロパティを参照します。つまり、[プロジェクト] -> [プロパティ] タブで、またはプロジェクト XML ファイルを編集して構成できるものです。

同様の質問が以前にもありました。 12、および3を参照してください。ただし、私の理解では、答えは C++ 固有のものでした。C# プロジェクトの回答を探しています。それにもかかわらず、私以外の誰かが興味を持っている可能性があるため、分離を明確にしておく場合は、他の種類のプロジェクト (Visual Basic など) について回答することをためらわないでください。

このブログ投稿では、この問題の解決策を提案していますが、私はもっと単純なものを好みます。

また、少なくとも次の方法で問題の一部を解決できます (テストはしましたが、完全にはテストしていないことに注意してください)。

共有するアセンブリ属性を含む AssemblyInfo.cs ファイルを作成します。個々のプロジェクトでこの既存のアイテムにリンクします。元の (ローカル) AssemblyInfo.cs を使用し、そこにプロジェクト固有のアセンブリ属性を配置します。残念ながら、属性のオーバーライドは機能していないようで、GUI を介した属性の管理は現在制限されています。

4

2 に答える 2

5

そのようなことのために、私は別のクラスライブラリプロジェクトを持ち、1つ(または複数)の静的クラスが(静的)プロパティを格納することを好みます。次に、これらのプロパティを同期する必要があるすべてのプロジェクトからそのプロジェクトへの参照を追加します。これらのプロジェクトはすべて同じ値を持ち、1か所で変更する必要があります。

たとえば、Webとデスクトップの形式で同じアプリを使用しているとします。接続文字列などは、両方で同じである必要があります。そこで、次の3つのプロジェクトを作成します
。MyProject.Web(Webアプリケーション)
MyProject.Desktop(Windowsフォームアプリケーション)
MyProject.Common(クラスライブラリ)
次に、接続を返すConnectionStringという静的プロパティを持つPropertiesという新しい静的クラスをCommonに追加します。ストリング。
次に、WebおよびデスクトップでCommonへの参照を追加し、それらのいずれかから接続文字列にアクセスする場合は、Common.Properties.ConnectionStringを使用します。

于 2010-09-11T12:58:15.257 に答える
1

.vspropsファイルを非常に頻繁に使用して、ネイティブプロジェクト間でマクロを共有します。

「空白の」ビジュアルC++プロジェクトをソリューションに追加して、vspropsファイルをインポートし、プロパティをソリューションの残りの部分に表示できるようにするというアイデアを思いついたのとまったく同じ質問をする人がいます。それがあまりにもひどいハックに聞こえない場合、私はそれがどのように機能したかを知ることができます。

于 2010-09-11T15:41:36.483 に答える