2010-03-04 13 views
7

Sto usando StyleCop in VS2008. Viene visualizzato questo errore:StyleCop SA1638

SA1638: l'attributo file nella tag copyright dell'intestazione del file deve contenere il nome del file.

Ecco la mia intestazione.

// <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> 

Ho il sospetto che il problema sia che il mio AssemblyInfo.cs si trova all'interno della cartella Proprietà. Eventuali indizi su come posso risolvere questo avviso senza disattivare lo StyleCop?

+0

Hai trovato un modo per risolverlo? – Task

+0

No. Nessuna correzione Ho dovuto sopprimere questo avvertimento. – niaher

+0

Questo è molto strano.Posso solo supporre che tu abbia trovato un bug in StyleCop allora. Risposta aggiornata! – Task

risposta

5

Selezionare il file in Esplora soluzioni, aprire la finestra Proprietà del pulsante destro del mouse, copiare il testo nell'area "Nome file", incollarlo nell'intestazione.

La directory Proprietà non dovrebbe avere importanza, presumo che tu abbia un errore di battitura da qualche parte.

Aggiunta:
Se ciò non funziona, per risolverlo dovrai passare al livello successivo.
Copia l'intero progetto in una nuova soluzione, riesegui la scansione con StyleCop.
Elimina tutti i file non correlati, riesegui la scansione con StyleCop.
Elimina tutto il codice nel file del problema tranne l'intestazione, riesegui la scansione con StyleCop.
Se il problema scompare da qualche parte lungo la strada, sarebbe davvero strano.
Se il problema non scompare, allora hai un campione riproducibile!

Zip up che campione e allegarlo a un nuovo elemento di lavoro qui: http://code.msdn.microsoft.com/sourceanalysis/WorkItem/List.aspx

Dato po 'di tempo ci sarà probabilmente una nuova release per correggere il bug. 8)

3

ho il seguente per un file AssemblyInfo.cs nella cartella Proprietà:

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

e non avere problemi con questo. Sei sicuro che il nome del file sia corretto (forse l'involucro è spento?) E che non hai alcun XML non valido (una e commerciale nel nome della tua azienda, forse)?

0

Il motivo è che il nome del file è diverso dal nome della classe all'interno del file. Rendere il nome del file e il nome della classe lo stesso risolverà questo problema.

0

molto probabilmente il problema è il nome del file e il nome della classe è diverso. Se è possibile aggiornare la classe come parziale, questo errore non verrà visualizzato da StyleCop.

2

Secondo StyleCop documentazione, questo è come si gestisce AssemblyInfo.cs al giorno d'oggi:

Un file che è completamente auto-generato da uno strumento, e che non dovrebbe essere controllato o applicata da StyleCop, può comprendere un Intestazione "auto-generata" piuttosto che l'intestazione del file standard. Ciò farà in modo che StyleCop ignori il file. Questo tipo di intestazione non deve mai essere posizionato sopra un file di codice scritto manualmente.

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