2011-12-15 2 views
6

Я работаю над приложением C# .NET, и я выполняю локализацию с файлами ресурсов. У меня есть файлы конкретных ресурсов культуры, такие как:Развертывание спутниковых сборок .NET в определенной папке

  • MyResource.resx;
  • MyResource.fr-FR.resx;
  • MyResource.ja-JP.resx;

После создания в корневой папке приложений есть папки, как fr-FR, ja-JP и так далее.

Возможно ли переместить все файлы и папки ресурсов локализации в одну и ту же папку, например Languages?

Обновление 1:

Я решил это с кодом ниже. Кажется, что, когда я копирую приложение в другое место, он не может загружать ресурсы. Как я вижу, файл application.config также должен быть там. И если я создаю app.config как внедренный ресурс, он не работает.

Есть ли способ, как сделать это без файла .config, необходимого в том же каталоге?

Благодаря

+0

Это проект либрей, например. Dll? – Remy

+0

Нет, это настольное приложение. – KristijanSharp

ответ

7

По умолчанию спутниковые узлы расположены в подкаталогах непосредственно ниже исполняемого файла. Если вы хотите, чтобы переместить все fr-FR, ja-JP и оставшиеся папки для других культур в той же папке, Languages вы можете сделать это, добавив следующую запись в файл конфигурации приложения:

<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <probing privatePath="Languages"/> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

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

+0

Спасибо. Теперь работает. – KristijanSharp

1

Мои Resx файлы в свойствах ниже:

  • Resources.resx
  • Resources.tr-TR.resx

Я положил информацию во время выполнения в файле конфигурации приложения, как описано выше, но без изменений. все еще создавая папку tr-TR по исполняемому пути, а не в папке Языки. Что, возможно, я здесь делаю неправильно? Спасибо

<configuration> 
... 
<runtime> 
... 
</runtime> 
</configuration> 
+0

Вам нужно переместить папку самостоятельно (я сделал это с шагом после сборки). Редактирование настроек конфигурации позволяет контролировать, как будут выполняться дополнительные сборки, а не там, где они записаны. – Seanba

Смежные вопросы