2010-03-04 62 views
7

我在VS2008中使用StyleCop。我收到此錯誤:StyleCop SA1638

SA1638:文件標頭的版權標籤中的文件屬性必須包含文件的名稱。

這是我的標題。

// <copyright file="AssemblyInfo.cs" company="company"> 
// Copyright (c) company. All rights reserved. 
// </copyright> 
// <author>me</author> 
// <email>[email protected]</email> 
// <date>2010-03-04</date> 
// <summary>blah blah.</summary> 

我懷疑問題是我的AssemblyInfo.cs位於Properties文件夾內。任何線索,我可以如何解決這個警告沒有沉默StyleCop?

+0

您是否找到解決方法? – Task 2010-04-28 16:57:58

+0

沒有。沒有修復。我不得不壓制這個警告。 – niaher 2010-04-29 14:33:06

+0

這很奇怪。我只能假設你在StyleCop中發現了一個bug。答案已更新! – Task 2010-04-29 19:47:21

回答

5

在解決方案資源管理器中選擇文件,打開右鍵單擊屬性窗口,複製「文件名」區域中的文本,將其粘貼到標題中。

屬性目錄應該不重要,我假設你在那裏有一個錯字。

此外:
如果這不起作用,然後修復它,你將不得不把它升級到一個新的水平。
將整個項目複製到新的解決方案中,使用StyleCop重新掃描。
刪除所有不相關的文件,用StyleCop重新掃描。
刪除問題文件中除標題外的所有代碼,用StyleCop重新掃描。
如果問題在某個地方消失了,那就太奇怪了。
如果問題沒有消失,那麼你有一個可重複的樣本!

拉上該樣本並將其連接到一個新的工作項目位置:http://code.msdn.microsoft.com/sourceanalysis/WorkItem/List.aspx

鑑於一段時間有可能會成爲一個新的版本,以修正錯誤。 8)

3

我已在在屬性文件夾中的AssemblyInfo.cs文件如下:

// <copyright file="AssemblyInfo.cs" company="company"> 
// product 
// Copyright (c) 2004-2010 
// by company (http://www.example.com) 
// </copyright> 

而且它不會有任何問題。你確定你的文件名是正確的嗎(可能是關閉的?),並且你沒有任何無效的XML(可能是你公司名稱中的&符號)?

0

原因是文件名與該文件中的類名不同。使文件名和類名相同將解決此問題。

0

最可能的問題是您的文件名和類名是不同的。 如果您可以將班級更新爲部分班級,則StyleCop不會顯示此錯誤。

2

據了StyleCop文檔,這是你將如何處理AssemblyInfo.cs時下:

是完全由工具自動生成的文件,並且不應該被檢查或了StyleCop強制執行的,可以包括「自動生成」標題而不是標準文件標題。這將導致StyleCop忽略該文件。這種類型的頭文件不應該放在手動編寫的代碼文件之上。

// <auto-generated /> 
namespace Sample.Something 
{ 
    // The contents of this file are completely auto-generated by a tool. 
}