В моем проекте я запускаю внешний инструмент для обновления некоторых двоичных файлов. Эти файлы включены в проект как «контент».Visual Studio добавляет событие предварительной сборки, которое всегда запускается (проект C#)
В настоящий момент инструмент запускается во время «события предварительной сборки» в свойствах проекта C#. К сожалению, это событие выполняется только в том случае, если проект устарел, а это не то, что мне нужно.
Я работаю над этим, всегда используя «rebuild» вместо «build» на моем проекте, но это утомительно и медленно.
Мне нужно выполнить этот инструмент всегда, независимо от того, является ли проект актуальным или нет. На самом деле, даже до того, как MSBuild даже определяет, является ли проект актуальным, поскольку инструмент изменяет некоторые файлы, включенные в проект, поэтому влияет на актуальный результат проверки.
Есть ли правильный способ сделать это?
Нет, модификация проектов, когда они загружаются в среду разработки, не подходит к концу. Конечно, есть лучший способ, ваш вопрос не помогает нам. –
@ HansPassant Может быть, я перепробовал вопрос. Это сводится к следующему: существует ли способ для _allways_ запускать команду перед сборкой? – kaalus
Для проектов C++ вы можете сделать это, используя Target с атрибутом 'BeforeTargets =" BuildGenerateSources ", для C# вы можете сделать что-то подобное и просто выяснить, какая из многих целей вызывается в сборке, которую вы собираетесь использовать для этого атрибута BeforeTargets. Запустите подробную сборку и проверьте вывод или запустите поиск в Microsoft.CSharp.targets или так. Однако, как говорит Ханс: результаты могут быть не такими, как вы ожидаете – stijn