Как использовать перенаправление строки реестра на управляемую DLL для поддержки MUI?

Я видел, как использовать перенаправление строк реестра чтобы включить поддержку MUI, даже при переполнении стека. Например, вы можете добавить в реестр перенаправленное строковое значение с именем DisplayName_Localized, чтобы локализовать запись вашей программы в пользовательском интерфейсе ARP.

Пример: @%ProgramFiles%\MyProduct\MyResources.dll, -12345

К сожалению, все, что я могу найти, говорит об использовании идентификатора строкового ресурса для определения того, какой строковый ресурс использовать. Это относится к dll неуправляемых ресурсов. У меня есть несколько ресурсных dll, которые управляемы и построены с помощью .Net Framework. Проблема в том, что я не вижу способа получить идентификатор строки или даже целочисленный идентификатор, поскольку строки идентифицируются по именам строк в связанных с ними файлах resx.

Можно ли таким образом включить поддержку MUI из реестра с dll управляемого ресурса?


person tdlamey    schedule 05.02.2016    source источник
comment
Почему вы хотите использовать реестр? Стандартные механизмы локализации .NET не соответствуют вашим требованиям?   -  person Phil Jollans    schedule 21.02.2016
comment
MUI работает только с неуправляемыми ресурсами. Вы создаете их из текстового файла с помощью утилиты rc.exe. И вставьте их в свою DLL с помощью вкладки «Проект» > «Свойства» > «Приложение», переключатель «Файл ресурсов». Трудно сделать правильно, так как теперь вам также нужно позаботиться о неуправляемых ресурсах, которые генерирует компилятор C#. Хотя бы версию и манифест. Гораздо проще создать DLL из проекта C++.   -  person Hans Passant    schedule 21.02.2016


Ответы (1)


Ссылка, которую вы предоставили Использование перенаправления строк реестра, указывает

Примечание Этот раздел относится только к ресурсам Win32 PE. При использовании ресурсов PE, отличных от Win32, при необходимости необходимо обеспечить настраиваемое перенаправление строки реестра.

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

person Phil Jollans    schedule 21.02.2016