2008-09-02 10 views
7

で複数のプロジェクトからリソースファイルを参照します。は、私はいくつかのプロジェクトで構成されてasp.netアプリケーションのローカライズに取り組んでいます解決策

このため、これらのプロジェクトのいくつかで使用されている文字列があります。当然のことながら、私は各プロジェクトにリソースファイルのコピーを1つだけ持つことを望んでいます。

リソースファイルには名前空間がありません(少なくとも私が知る限りは)、通常のクラスのようにアクセスすることはできません。

は、同じソリューション内で、別のプロジェクトにRESXファイルを参照する方法はありますか?

答えて

8

あなただけの、クラスライブラリプロジェクトを作成してそこにリソースファイルを追加し、ためにそのアセンブリを参照することができます共通のリソース。

5

私はこのソリューションを使用して、リソースファイルを処理すると思われるソリューション内のすべてのプロジェクトでassembleのinfo.csファイルを共有しています。

各プロジェクト/クラスライブラリにリンクされたファイルを作成します。コピーは1つだけで、コンパイル時にリンクされたファイルを介してすべてのプロジェクトがコードを参照します。コードを複製することなく共有された非パブリックリソースを解決する非常に洗練されたソリューションです。

<Compile Include="path to shared file usually relative"> 
    <Link>filename for Visual Studio To Dispaly.resx</Link> 
</Compile> 

その後、RESXファイルへの実際のパスとパスを交換し、あなたがそれらを開くことができsould csprojファイルのcomplile項目グループにそのコードを追加します。

これを1つのプロジェクトファイルに対して実行したら、コピー&を使用して、リンクされたファイルをcsprojをハックすることなく他のプロジェクトに貼り付けることができます。

+0

良いもの! VSのXMLをコンパイルしようとしないように、リンクのビルドアクションを 'Compile'から' Embedded Resource'に変更しなければなりませんでした。 – piedar

関連する問題