使用VSTS的WPF警告:为'* .g.cs'文件指定了不同的校验和值

时间:2009-12-11 18:57:04

标签: wpf xaml visual-studio-2008

在Visual Studio 2008 Team System中,这是我的警告:

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

SomeFile.g.cs文件中的违规行是:

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

我删除了解决方案中的{em>所有 *.g.cs个文件并重建了所有警告。这到底是什么意思?

1 个答案:

答案 0 :(得分:11)

在生成GUID时,Visual Studio似乎无法正确处理非常长的路径。我通过在长路径中添加两个不同的文件来确认这一点,并重现了您所看到的行为。如果您查看有问题的SomeFile.g.cs文件,您会注意到这两个文件的guid是相同的。显然,Visual Studio仅在生成此GUID时检查文件路径的第一个 x 字符。

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)

来自.g.cs文件:

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

至于解决方案,我猜你可以缩短你的路径,或者(更有可能)忽略这些警告。 :)