Можете ли вы отключить условные символы компиляции из командной строки msbuild.exe? - PullRequest
4 голосов
/ 11 июля 2011

У нас есть CODE_ANALYSIS, определенный в наших компонентах C #, так что FxCop анализирует их, когда мы строим их на наших блоках разработки.Я хотел бы отключить FxCop, когда он запускается через нашу систему сборки.Система сборки, очевидно, использует команду командной строки msbuild.exe.Есть ли способ изменить условные символы компиляции из этого исполняемого файла?Если нет, кто-нибудь знает какие-либо другие возможные решения моей проблемы (кроме выключения вручную)?

Спасибо.

Ответы [ 2 ]

6 голосов
/ 11 июля 2011

Символ компиляции CODE_ANALYSIS определяет, копируются ли экземпляры SuppressMessageAttribute, включенные в код, в скомпилированную сборку.Он не контролирует, работает ли FxCop.Если вы хотите переопределить свойство MSBuild уровня проекта, такое как RunCodeAnalysis (это beastie, который контролирует, запускается ли FxCop под MSBuild), вы должны иметь возможность использовать ключ командной строки MSBuild.exe / property.например:

msbuild.exe <...> /property:RunCodeAnalysis=true
1 голос
/ 11 июля 2011

Зачем вам их выключать? Лучший способ настроить проект - определить CODE_ANALYSIS только для отладочных конфигураций. В версии выпуска не будет установлено это значение. Таким образом, при сборке производственных установок они не будут иметь никаких ссылок на FxCop.

...