Ссылки на файлы ресурсов из нескольких проектов в решении - PullRequest
8 голосов
/ 02 сентября 2008

Я работаю над локализацией для приложения asp.net, которое состоит из нескольких проектов.

Для этого есть несколько строк, которые используются в нескольких из этих проектов. Естественно, я бы предпочел иметь только одну копию файла ресурсов в каждом проекте.

Поскольку файлы ресурсов не имеют пространства имен (по крайней мере, насколько я могу судить), к ним нельзя получить доступ, как к обычным классам.

Есть ли способ ссылаться на файлы resx в другом проекте, в рамках того же решения?

Ответы [ 3 ]

8 голосов
/ 02 сентября 2008

Вы можете просто создать проект библиотеки классов, добавить туда файл ресурсов и затем обратиться к этой сборке для получения общих ресурсов.

5 голосов
/ 02 сентября 2008

Я использовал это решение прежде, чтобы предоставить общий доступ к файлу info.cs для всех проектов решения, и я предположил, что то же самое будет работать с файлом ресурсов.

Создать связанный файл с каждым отдельным проектом / библиотекой классов. Будет только одна копия, и каждый проект будет иметь ссылку на код через связанный файл во время компиляции. Это очень элегантное решение для решения общих непубличных ресурсов без дублирования кода.

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

добавьте этот код в группу элементов компиляции файла csproj, затем замените пути вашими фактическими путями к файлам resx, и вы сможете их открыть.

После того, как вы сделали это для одного файла проекта, вы сможете использовать функцию копирования и вставки связанного файла в другие проекты без необходимости взломать csproj.

4 голосов
/ 02 сентября 2008

Несколько полезных советов о том, как справиться с подобной ситуацией, доступны здесь:

http://www.codeproject.com/KB/dotnet/Localization.aspx

...