3

ソリューションに含まれるプロジェクト ファイルまたはプロジェクト プロパティ シートからアクセスできるグローバル変数をソリューションに対して定義する方法はありますか?

すべてのプロジェクトに含めることができるプロパティ シートのパスを定義できる場合は、1 つの変数で十分です。

これは解決のために望ましい。環境変数は問題ありませんが、あまり望ましくありません。

* * (ビジュアルスタジオ 2010)

もう一度調べてみると、プロジェクトでユーザー定義の $(xxx) 変数を設定する方法がわかりません - はい、プロパティ シートで設定できますが、プロジェクトでは $(ProjectDir) を参照しています -

問題は、特定のプロジェクトを参照するすべてのプロジェクトがアクセスできる $(プロジェクト ルートのツリー) を定義したいことであり、ルートはそのプロジェクトに対して相対的になります。

別の方法としては、プロパティ シートが独自のパスにアクセスでき、それに対するプロジェクト コレクション ルート (共通リソースを持つ関連プロジェクトのツリー) を定義できる場合があります。

VS で大規模なシステムを構築するすべての人が同じ問題を抱えているようです。

4

1 に答える 1

1

あなたのユースケースはわかりませんが、それは最善のアイデアとは思えません。これにより、すべてのプロジェクトが非常に緊密に結び付けられ、優れた OO 設計に違反します。このため、Microsoft はソリューション レベルのプロパティを含めていません。ただし、本当にこのようなことをしたい場合は、(少なくとも) 2 つの方法があります。

最初の方法、および私が推奨しない方法は、変数をプロジェクトの 1 つに保存して公開することです。その後、プロジェクトが参照として含まれている限り、すべてのプロジェクトがそれにアクセスできます。

2 番目の方法、およびいくつかの OO 原則を保持する方法は、すべてのプロジェクトが変数を参照する構成ファイルを作成することです。これは、XML ファイル、CSV ファイル、または単純なテキスト ファイルの場合もあります。さらに複雑にしたい場合は、データベースの場所を指定できます。これはデータベースの役割の 1 つだからです。

于 2011-06-17T16:22:28.717 に答える