MSBuild: задача встраивания файла перед компиляцией - PullRequest
4 голосов
/ 28 января 2011

У меня есть следующая потребность:

Мне нужно будет создать задачу MSBuild, которая создаст файл XML, который затем мне нужно будет встроить в качестве ресурса в один из создаваемых проектов.Как мне изменить мой MSBuild proj для этого?Есть ли встроенная задача, которую я могу использовать для встраивания файла, или мне нужно ее создать?Если последнее, любое направление на это было бы замечательно.

Заранее спасибо!

Обновление: на основе приведенных предложений я закончил тем, что добавил пустой файл XML в проект какресурс, создающий простую пользовательскую задачу MSBuild (http://bartdesmet.net/blogs/bart/archive/2008/02/15/the-custom-msbuild-task-cookbook.aspx), которая записывает содержимое в этот файл по мере необходимости, и запускает эту задачу как цель «BeforeBuild». Работает как чудо. Обратите внимание, что мне пришлось «исключить«Файл из системы контроля версий», поэтому он не будет проверяться каждый раз, когда я собираю проект, и я также добавил некоторый код в задачу, чтобы убедиться, что файл не доступен только для чтения (http://www.del337ed.com/blog/index.php/2007/09/05/clearing-the-read-only-flag-on-a-file-in-c/).

Ответы [ 2 ]

0 голосов
/ 28 января 2011

Если вам не нужно создавать весь Xml-файл с нуля и вы можете добавить файл-заглушку в свой проект, вы можете использовать XmlPoke Task , чтобы обновить этот файл в программе BeforeBuild Target (см. Ответ Sergios ).

0 голосов
/ 28 января 2011

Вы можете использовать встроенный в целевой файл .csproj / .vbproj файл BeforeBuild (не забудьте его раскомментировать) и вызвать требуемую задачу MSBuild в BeforeTarget. В этом проекте добавьте этот ресурс как встроенный. Это все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...