22

これが私がやりたいことです:

リソースファイル(UIラベルなど)を含むライブラリプロジェクトを作成したいと思います。次に、UIとテストの両方でリソースライブラリを使用したいと思います。(つまり、基本的に、複数のプロジェクトから参照するリソースの共通の場所があります。)

残念ながら、StronglyTypedResourceBuilder(Resourcesのコードを生成する.Netクラス)はデフォルトでリソースファイルを内部に作成するため、ジャンプせずに別のプロジェクト(つまり、UIまたはテスト)からライブラリ内の強く型付けされたリソースを参照することはできません。フープを介して(つまり、ここで説明されているものに似たもの、またはパブリックラッパークラス/関数を作成する)。

残念ながら、これらのソリューションはどちらも、参照を強く型付けしたままにする私の能力を削除します。

複数のプロジェクトから参照できる強く型付けされた.Netリソースを作成する簡単な方法を見つけた人はいますか?

これを実現するためにビルドイベントを使用する必要はありません(つまり、「internal」のすべてのインスタンスを「public」に置き換えるなどの操作を行いますが、見つからない場合は基本的にフォールバックプランです。答え..

4

3 に答える 3

38

使用している Visual Studio のバージョンがわからないため、いずれかのバージョンの手順を記載します。

VS 2008 - resx ファイルをデザイン ビューで開くと、[リソースの追加] と [リソースの削除] の横にアクセス修飾子と呼ばれるオプションがあり、生成されたコードを内部からパブリックに変更できるドロップ ダウンです。

VS 2005 - VS 2008 のようにコードを生成するオプションはありません。これは、この問題のために追加された機能です。ただし、回避策があります。このツールのようなサード パーティのジェネレーターを使用するか、AssemblyInfo.cs でInternalsVisibleTo属性を使用して、リソース ライブラリの内部クラスにアクセスできるプロジェクトを追加することができます。

于 2008-09-26T18:11:00.513 に答える
2

Visual Studio 2008では、生成されたリソースクラスを内部にするかパブリックにするかを選択できます。ResXFileCodeGeneratorExもあります。これは、VisualStudio2005でこれを行う必要があります。

于 2008-09-26T17:53:59.120 に答える
0

データセットデザイナから、プロパティウィンドウが表示されている状態で、「Modifier」プロパティがあります。データセットの場合、内部と言っている可能性があります。

すべての新しいデータセットをデフォルトで公開する設定があるかどうかはわかりません。

于 2008-09-26T17:57:02.293 に答える