Запуск PublicResXFileCodeGenerator во время компиляции

Мы используем PublicResXFileCodeGenerator для генерации файлов *.Designer.cs из файлов *.resx. В настоящее время они генерируются всякий раз, когда .resx сохраняется или когда мы щелкаем правой кнопкой мыши и выбираем "Запустить пользовательский инструмент".

Я хочу иметь возможность запускать этот инструмент автоматически во время сборки, а не делать это вручную. Файлы Designer.cs не находятся под контролем исходного кода, поэтому раздражает необходимость генерировать их вручную каждый раз, когда кто-либо другой изменяет ресурс, или при первой проверке. Это нормально, если файлы генерируются при каждой сборке, поскольку они не очень большие, но делать это только тогда, когда они устарели, было бы еще круче.

Примечание. Это будет частью сборки Visual Studio, а не сборки командной строки. Я нашел ответ на другой вопрос о том, что это возможно из VS, но не из командной строки: Запустите пользовательский инструмент Visual Studio во время сборки

Ответ 1

Вы можете написать макрос VS, который просто запускает настраиваемый инструмент, когда вам это нужно. Метод автоматизации VSProjectItem.RunCustomTool. Посмотрите на этот ответ на SO для аналогичной проблемы: Запустить пользовательский инструмент для всего решения

В противном случае PublicResXFileCodeGenerator является просто оболочкой VS на StronglyTypedResourceBuilder Class, который вы можете автоматизировать, как вы хотите. Я не знаю, есть ли над ним задача Msbuild, но вы также можете написать ее или просто написать специальную программу на этапе предварительной сборки. Вот пример того, как использовать этот класс: Сильно типизированные ресурсы в ASP.NET

Ответ 2

Посмотрите на эту статью проекта кода. Похоже, это хорошая отправная точка, чтобы получить то, что вы хотите.