2009-12-11 9 views
6

W Visual Studio 2008 Team System, to moja uwaga:WPF Ostrzeżenie z VSTS: różne wartości sumy kontrolnej podane dla '*' .g.cs Pliki

Different checksum values given for '<some folder>' ...\Visual Studio 2008\Projects\... 
\Debug\...\SomeFile.g.cs 

Linia popełniła w pliku SomeFile.g.cs jest:

#pragma checksum "..\..\..\..\..\..\...\SomeFile.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "A18BC47B27EC4695C69B69F1831E3225" 

Usunąłem wszystkie z *.g.cs plików w roztworze i przebudowany i wszystkie ostrzeżeń wrócił. Co to do diabła jest?

+1

Czy przypadkiem masz generowane pliki o naprawdę długich ścieżkach? To ostrzeżenie powinno oznaczać, że istnieją dwa pliki o tej samej nazwie, a program Visual Studio nie może określić, z którego z nich należy debugować, ale możliwe jest, że obcinał ścieżkę w pewnym momencie, porównując je ze sobą. –

Odpowiedz

10

Wygląda na to, że program Visual Studio nie obsługuje poprawnie długich ścieżek podczas generowania identyfikatorów GUID. Potwierdziłem to, dodając dwa różne pliki do długiej ścieżki i odtwarzając zachowanie, które widzisz. Jeśli spojrzysz na pliki obraźliwe SomeFile.g.cs zauważysz, że guids dla tych dwóch plików są takie same. Wygląda na to, że program Visual Studio sprawdza tylko pierwsze znaki ścieżki pliku podczas generowania tego identyfikatora GUID.

C:\Users\Developer\Documents\Visual Studio 2008\Projects\WpfApplication1\WpfApplication1\obj\Debug\LongFolderNameLongFolderNameLongFolderName\LongFolderNameLongFolderNameLongFolderName\LongFolderNameLongFolderNameLongFolderName\SomeFileName1.g.cs(1,1): warning CS1697: Different checksum values given for 'c:\Users\Developer\Documents\Visual Studio 2008\Projects\WpfApplication1\WpfApplication1\LongFolderNameLo' 
C:\Users\Developer\Documents\Visual Studio 2008\Projects\WpfApplication1\WpfApplication1\obj\Debug\LongFolderNameLongFolderNameLongFolderName\LongFolderNameLongFolderNameLongFolderName\LongFolderNameLongFolderNameLongFolderName\SomeFileName2.g.cs(1,1): (Related location) 

z plików .g.cs:

#pragma checksum "..\<snipped>\SomeFileName1.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "F21D94943016E57893CEB405BE12ADEA" 
#pragma checksum "..\<snipped>\SomeFileName2.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "C67F2F8C841E2C338E5FCDC5037E8454" 

W celu rozwiązania problemu, myślę, że można też skrócić ścieżki lub (bardziej prawdopodobne) zignorować te ostrzeżenia. :)

+0

Potwierdzę to po moim końcu, ale to wydaje się być właściwym rozwiązaniem! – rasx

+0

Potwierdzono! To * jest * rozwiązaniem! – rasx

+0

Czy zostało to podniesione w Microsoft? –

Powiązane problemy