«Запустить пользовательский инструмент» для файлов resx в проекте MVC2 (из внешнего приложения / скрипта)
Я пытаюсь заставить локализацию для моего проекта MVC работать с нашей существующей инфраструктурой для редактирования строковых ресурсов. Мы храним все наши строки ресурсов в таблицах базы данных и имеем интерфейс веб-интерфейса для их редактирования, а также приложение для экспорта, которое сгенерировало файлы .resx. Все это прекрасно работает, но у меня есть небольшие трудности с новым проектом, использующим MVC2 и VS2010.
я спрашивалДругой вопрос на это, ответ на который меня почти достал, но не совсем.
Теперь я изменил ресурсы, чтобы они находились в папке «Ресурсы» (вместо App_GlobalResources), как рекомендовано несколькими людьми. И иметь следующие настройки для моих файлов .resx ...
Build Action = Embedded Resource Copy to Output Directory = Do not copy Custom Tool = PublicResXFileCodeGenerator Custom Tool Namespace = Resources File Name = MyApp.resx
Я изменил свое приложение экспорта, чтобы запуститьResgen.exe инструмент со следующими параметрами ...
string args = string.Format("/publicClass \"{0}\" /str:cs,Resources,{1},\"{2}\"", resourceFile, Path.GetFileNameWithoutExtension(resourceFile), csFilename);
... который генерирует почти идентичный файл .designer.cs, который я получаю, когда первоначально добавляю файл .resx в свой проект. Единственная разница заключается в
Сгенерированный файл .designer.cs немного отличается от файла, который я получаю при запуске инструмента resgen.exe из моего приложения экспорта.
Это код, сгенерированный VS2010, когда я впервые добавляю файл .resx в мою папку Resources ...
public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Resources.MyApp", typeof(MyApp).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
... разница, когда я запускаю инструмент resgen.exe в том, что это префиксыMyCompany.MyApp в пространство имен в конструкторе ResourceManager
new global::System.Resources.ResourceManager("MyCompany.MyApp.Resources.MyApp", typeof(MyApp).Assembly);
Теперь мне кажется, что это ошибка в инструменте resgen.exe, потому что я сказал, что пространство имен для моих ресурсовРесурсынеMyCompany.MyApp.Resources.
Итак, есть ли решение / решение этой проблемы?
Единственное, что я могу сейчас сделать, - это постобработать сгенерированный файл .designer.cs с powershell и исправить его!