«Запустить пользовательский инструмент» для файлов 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 и исправить его!

Ответы на вопрос(1)

Ваш ответ на вопрос