2009-12-01 11 views
7

Tôi vừa nâng cấp một dự án từ 2008 đến 2010 Beta 2 và StyleCop hiện đang báo cáo SA1305 (ký hiệu Hungary) cảnh báo về tên biến với tiền tố 'là'. 'Is' chắc chắn nằm trong danh sách các tiền tố được phép.Tại sao StyleCop SA1305 không tôn trọng danh sách tiền tố được phép trong VS2010 (hoặc MSBuild)?

Đây có phải là sự cố đã biết không? Có ai khác gặp phải vấn đề này không? Mã đã được biên dịch chắc chắn mà không có bất kỳ cảnh báo nào trong năm 2008.

Cập nhật: Nó chỉ hoạt động như mong đợi trong Visual Studio, nhưng sau đó không thành công thông qua MSBuild. Xem câu trả lời dưới đây để biết lý do.

Trả lời

4

tôi chạy qua một vấn đề tương tự tại khi xây dựng với msbuild vs trên một hộp phát triển. Nó chỉ ra rằng các Settings.StyleCop mặc định (C:\Program Files (x86)\MSBuild\Microsoft\StyleCop\v4.4) được cài đặt thực sự chứa một loạt các giá trị mà bạn sẽ cần phải lặp lại trong tập tin riêng của bạn nếu một trong hai:

  • bạn không cài đặt StyleCop trên "khác" (xây dựng) máy

hoặc

  • bạn đã "không hợp nhất với bất kỳ tập tin thiết lập khác" kích hoạt

Cụ thể - Trình chỉnh sửa cài đặt StyleCop chọn ký hiệu Hungari không bao gồm tự động từ tệp khác, bất kể tab "Tệp cài đặt" nói gì.

2

chỉ cần thêm nó như thế này:

<Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.NamingRules"> 
    <AnalyzerSettings> 
    <CollectionProperty Name="Hungarian"> 
     <Value>is</Value> 
    </CollectionProperty> 
    </AnalyzerSettings> 
</Analyzer> 

http://www.thewayithink.co.uk/stylecop/sa1305.htm

+0

Thực tế trong danh sách mặc định. – Jedidja

10

Bạn có thể tự thêm các "là" ngoại lệ đối với Settings.StyleCop:

<Analyzers>  
    <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.NamingRules"> 
    <AnalyzerSettings> 
     <CollectionProperty Name="Hungarian"> 
     <Value>is</Value> 
     </CollectionProperty> 
    </AnalyzerSettings> 
    </Analyzer> 
</Analyzers>