Чтобы использовать GetGlobalResourceObject()
в Visual Studio 2008, мне нужно скопировать файл .resx в папку App_GlobalResources Visual Studio. После предварительной компиляции приложения файлы ресурсов компилируются в соответствующие вспомогательные сборки и развертываются в папке \bin\
по именам культур. Все работает нормально.
Однако я не могу добавлять новые вспомогательные сборки после предварительной компиляции приложения. Я сделал следующее:
Создал сателлитную сборку:
resgen resources.applicationresources.es-ES.resx resources.applicationresources.es-ES.resources al / t: lib / culture: es-ES /embed:resources.applicationresources.es-ES.resources /out:App_GlobalResources.resources.dll
Создал папку
\bin\es-ES\
и развернул туда файл .dll.
К сожалению, недавно добавленная вспомогательная сборка не распознается GetGlobalResourceObject()
, который возвращается к ресурсу по умолчанию (английский). Кажется, что с файлом ресурсов все в порядке, потому что если я скопирую тот же файл .resx в App_GlobalResources
, а затем скомпилирую приложение, все будет работать нормально.
Что мне не хватает? Кстати, мой тип проекта - это веб-сайт, а не проект веб-приложения.
2 ответа
(Из комментария @ksa)
Одна вещь, которая может пойти не так, - это неправильный путь к пространству имен в DLL, созданной resgen, вы можете использовать ILDASM или Reflector для сравнения пространств имен в рабочих библиотеках DLL и сгенерированных неработающих библиотеках DLL. Затем вы можете изменить командную строку resgen, чтобы сгенерировать с правильным пространством имен.
Попробуйте подключиться к событию AssemblyResolve в AppDomain.CurrentDomain и посмотрите, действительно ли он ищет сборку. Если он действительно его ищет, все, что вам нужно сделать, это сохранить список динамически загружаемых сборок и их пути.
Одно замечание о AssemblyResolve: если у вас нет сборки, верните null. Это поведение по умолчанию.
Похожие вопросы
Новые вопросы
asp.net
ASP.NET - это среда разработки веб-приложений Microsoft, которая позволяет программистам создавать динамические веб-сайты, веб-приложения и веб-службы. Полезно использовать этот тег в сочетании с тегом типа проекта, например, [asp.net-mvc], [asp.net-webforms] или [asp.net-web-api]. НЕ используйте этот тег для вопросов о ASP.NET Core - используйте вместо этого [asp.net-core].