簡體   English   中英

C#+ StyleCop + MSBuild +全局區域性設置無法獲取

[英]C# + StyleCop + MSBuild + Global culture settings failing to be picked up

我已經設置了C#項目文件,以導入在構建時運行所有StyleCop規則的StyleCop.Targets項目。 太好了,通過Visual Studio進行編譯時,我將項目的錯誤降至零。

但是,當我通過MSBuild編譯(在同一台計算機上)時,出現以下錯誤:

The documentation text within the constructor's summary tag must begin with the text: Initializes a new instance of the <see cref="MyClass" /> class.

專注於初始化中的“ Z” ...我已經為我的Settings.StyleCop配置了en-GB全局設置,這樣我就不會在代碼內出現關於美洲主義的錯誤。 但是我無法弄清楚為什么這會導致MSBuild中的錯誤。

我知道MSBuild使用的是相同的Settings.StyleCop文件,就像我更改規則一樣(例如TabsMustNotBeUsed)。MSBuild(和Visual Studio)選擇了此更改並在整個地方引發錯誤。

我正在使用StyleCop 4.7,Visual Studio 2012和MSBuild 4。

這是我的Settings.StyleCop文件的摘要:

<StyleCopSettings Version="105">
  <GlobalSettings>
    <StringProperty Name="Culture">en-GB</StringProperty>
  </GlobalSettings>
  <Parsers>
    <Parser ParserId="StyleCop.CSharp.CsParser">
      <ParserSettings>
        <BooleanProperty Name="AnalyzeDesignerFiles">False</BooleanProperty>
      </ParserSettings>
    </Parser>
  </Parsers>
  <Analyzers>
    <Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
      <Rules>
        <Rule Name="TabsMustNotBeUsed">
          <RuleSettings>
            <BooleanProperty Name="Enabled">False</BooleanProperty>
          </RuleSettings>
        </Rule>
      </Rules>
      <AnalyzerSettings />
    </Analyzer>
  </Analyzers>
</StyleCopSettings>

有什么線索嗎?

干杯!

我假設您使用的是最新版本的StyleCop(4.7.41.0)或接近該版本的版本。 4.7版本行中進行了大量更改和修復,並且發布了相當定期的更新。

我猜想文件夾層次結構中的子目錄下必須有另一個Settings.StyleCop文件,該文件將區域性設置回en-US 只要您不在其他設置文件中再次對其進行設置,在此特定設置文件中修改其他規則(如TabsMustNotBeUsed)仍將按預期進行。 一個潛在的原因可能是從中運行StyleCop的工作文件夾。

建議您在文件系統中進行快速掃描,以查看是否可以找到其他設置文件,如果找到,請檢查其區域性設置。

我做過的另一個技巧是停止在解決方案根目錄下的設置文件中合並。 可以通過添加以下設置來完成:

<GlobalSettings>
    <StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
</GlobalSettings>

這將確保StyleCop在所有開發和構建計算機上的行為均相同,而不管層次結構上級配置的設置如何(例如StyleCop應用程序文件夾中的設置)。 但是,如果執行此操作,請確保從不再合並的文件中復制所有必需的設置。 從您的描述中,我懷疑這是否可以解決此特定問題,但是我發現它有助於保持規則的一致性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM