code-prettify

2014年8月5日 星期二

C# StyleCop 忽略特定檔案名稱

忽略特定檔案名稱

今天遇到一個問題,編譯檔案後進行 StyleCop 檢查時出現:
TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs(1,1)
TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs(1,1)
TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs(1,1)

看起來是自動產生的檔案,但是卻會造成 StyleCop 檢查失敗,
這時候可以手動加上 StyleCop 忽略檔案規則。

到 StyleCop 安裝目錄底下 (預設安裝路徑是 C:\Program Files (x86)\StyleCop 4.7),
使用文字編輯器開啟 Settings.StyleCop 檔案。

檔案內容預設如下:

<StyleCopSettings Version="4.3">
  <GlobalSettings>
    <CollectionProperty Name="DeprecatedWords">
      <Value>preprocessor,pre-processor</Value>
      <Value>shortlived,short-lived</Value>
    </CollectionProperty>
  </GlobalSettings>
  <Parsers>
    <Parser ParserId="StyleCop.CSharp.CsParser">
      <ParserSettings>
        <CollectionProperty Name="GeneratedFileFilters">
          <Value>\.g\.cs$</Value>
          <Value>\.generated\.cs$</Value>
          <Value>\.g\.i\.cs$</Value>
        </CollectionProperty>
      </ParserSettings>
    </Parser>
  </Parsers>
  <Analyzers>
    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
      <AnalyzerSettings>
        <CollectionProperty Name="Hungarian">
          <Value>as</Value>
          <Value>do</Value>
          <Value>id</Value>
          <Value>if</Value>
          <Value>in</Value>
          <Value>is</Value>
          <Value>my</Value>
          <Value>no</Value>
          <Value>on</Value>
          <Value>to</Value>
          <Value>ui</Value>
        </CollectionProperty>
      </AnalyzerSettings>
    </Analyzer>
  </Analyzers>
</StyleCopSettings>

找到其中一段 CollectionProperty ,預設已經有三行設定,
新增一行,如下:

          <Value>\.g\.cs$</Value>
          <Value>\.generated\.cs$</Value>
          <Value>\.g\.i\.cs$</Value>
          <Value>TemporaryGeneratedFile_.*\.cs$</Value>

存檔後,重新編譯一次專案,OK,沒有錯誤訊息了。


補充,如果想要忽略 *.pb.cs 這樣的規則,
加入下列這一行:

          <Value>\.pb\.cs$</Value>


Reference
TemporaryGeneratedFile_[guid] in /obj/debug breaking build

沒有留言:

張貼留言