Strongly Typed Resourceファイルを(内部ではなく)公開する方法はありますか?

StackOverflow https://stackoverflow.com/questions/140937

質問

私がやりたいことは次のとおりです。

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

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

残念なことに、これらのソリューションは両方とも、参照を厳密に型指定する機能を削除します。

複数のプロジェクトから参照できる厳密に型指定された.Netリソースを作成する簡単な方法を誰かが見つけましたか?

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

役に立ちましたか?

解決

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

VS 2008-resxファイルをデザインビューで開くと、上部に[リソースの追加]および[リソースの削除]というオプションがあります。これは、生成されたコードを内部からパブリックに変更できるドロップダウンです。 。

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

他のヒント

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

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top