Есть ли способ не позволить MsBuild выполнять статический анализ контрактов с контрактами кода? - PullRequest
6 голосов
/ 09 августа 2010

В моем проекте статическая проверка отключена, но, тем не менее, когда я запускаю msbuild.exe с cmd, он запускает статическую проверку для каждого проекта ... Есть ли способ с параметрами отключить это?

Ответы [ 3 ]

8 голосов
/ 21 февраля 2011

Это может быть 'немного' поздно, но так как я только что столкнулся с той же проблемой, и /p:RunCodeAnalysis=false не работает для меня:

Попробуйте msbuild ... /p:CodeContractsRunCodeAnalysis=false.

Это работаетпо состоянию на февраль 2011 года в соответствии с Кодекс контрактная документация и мой опыт.

2 голосов
/ 09 августа 2010

Следующие должны сделать это:

MSBuild ... /p:RunCodeAnalysis=false
1 голос
/ 22 августа 2013

Если вы не хотите передавать параметры в msbuild или строите из Visual Studio, есть способ подавить проверку контрактов статического кода и анализ кода.

Примечание: каждый файл * .csproj содержит: <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />.

Для .Net 4.0 msbuild.exe и Microsoft.CSharp.targets путь равен "C:\Windows\Microsoft.NET\Framework\v4.0.30319\"

Открыто Microsoft.CSharp.targets Добавить новый PropertyGroup внутри Project как:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
...
 <PropertyGroup>  
   <CodeContractsRunCodeAnalysis>false</CodeContractsRunCodeAnalysis>
   <RunCodeAnalysis>Never</RunCodeAnalysis>
   <CodeContractsReferenceAssembly>DoNotBuild</CodeContractsReferenceAssembly>
 </PropertyGroup>
...
<!-- a lot of stuff -->
...
</Project>

Это будет эмулировать аргументы командной строки msbuild (т.е. /p:CodeContractsRunCodeAnalysis=false,RunCodeAnalysis=Never,CodeContractsReferenceAssembly=DoNotBuild

Все ваши сборки сейчас на вашем компьютере (из MSBuild и Visual Studio) будут пропускать анализ кода и статический анализ контрактов, поэтому вам не нужно передавать аргументы из командной строки.

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