2014-09-24 92 views
0

我有一個約80個項目的解決方案。每個項目都啓用StyleCop MSBuild集成:刪除stylecop msbuild集成

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 
    <Import Project="$(ProgramFiles)\MSBuild\Microsoft\StyleCop\v4.4\Microsoft.StyleCop.targets" /> 

我需要從所有項目中刪除此項。有沒有辦法檢出和手動編輯每個.csproj文件?

+1

可能重複[如何擺脫了StyleCop的(http://stackoverflow.com/questions/4399061/how-to-get-rid-of-stylecop) – jordanhill123 2014-09-24 02:40:31

+0

@ jordanhill123不是。當人們被告知如何禁用警告時,該問題被標記爲「回答」。我知道該怎麼做。我需要TFS TEAMBUILD控制器來忽略這些導入語句。 – zaitsman 2014-09-24 02:46:13

+2

這個問題中的這個特定答案是否有幫助? http://stackoverflow.com/a/21931371/749725我不使用TFS,所以不能測試它,並不確定它將如何處理這個配置文件。 – jordanhill123 2014-09-24 02:47:57

回答

2

Microsoft.StyleCop.targets中定義的StyleCop目標是以屬性StyleCopEnabled爲條件。

這裏是Microsoft.StyleCop.targets一個片段:

<!-- Define target: StyleCop --> 
<Target Name="StyleCop" Condition="'$(StyleCopEnabled)' != 'false'"> 
    <Message Text="Forcing full StyleCop reanalysis." Condition="'$(StyleCopForceFullAnalysis)' == 'true'" Importance="Low" /> 
    ... snip ... 

的快捷方式禁用了StyleCop是通過全局設置爲StyleCopEnabled。例如。如果你是從命令行構建,命令將是:msbuild MyProject.proj /p:StyleCopEnabled=false

+0

我試着在TFS的MSBuild參數中指定它,並且由於某種原因它忽略了它。當然,這可能是TFS的問題。另外,是否需要安裝stylecop才能識別此標誌? – zaitsman 2014-09-25 01:13:02

+0

@zaitsman,您的項目假定已安裝StyleCop,並且如果在元素中指定的位置找不到'Microsoft.StyleCop.targets'文件,則構建失敗。錯誤代碼將是'MSB4019'。 – 2014-09-25 16:23:36

+0

是的,我收集到了。我可以繞過這個的唯一方法就是手動編輯每個項目的.csproj文件來刪除它。 我正在尋找的是某種自動化的方式來實現相同的結果。我無法在tfs在線上的託管構建控制器上安裝stylecop。 – zaitsman 2014-09-25 23:46:18

0

我有一個類似的問題,仍然是手動編輯,但這對我有用。在記事本中打開所有的.csproj文件,方法是在項目目錄中搜索,然後選擇全部和「用記事本++編輯」。然後做了「查找全部在所有打開的文檔」查找,替換,除去導入行:

<Import Project="$(ProjectDir)\..\StyleCop.targets" Condition=" '$(OS)' == 'Windows_NT' " />