Visual Studio 2008中的“源文件不同......”消息是在x64 Windows上调试x32应用程序的结果

时间:2010-01-06 15:23:39

标签: c# visual-studio debugging visual-studio-2008

我正在编写ADO.NET提供程序。为了调试我使用类DbProviderFactories.GetFactory方法。这个方法构造我继承的DbProviderFactory类,我用它来创建我的提供者的DbConnection继承者等。当我尝试在我的提供者代码中设置断点时,我播种它不起作用 - 执行没有停止。当我在我的代码中抛出异常时,VS2008显示了描述“源文件不同......”的消息框。 调试在前一天之前运行良好,但现在不是。有人知道“魔术复选框”来解决我的麻烦吗?有什么想法吗?

Update1 :提供商程序集正在构建后步骤中添加到GAC。编译器没有在解决方案中发现错误。 Update2 :静态引用程序集的源代码也是“不同的”。

Update3和最后:我发现了麻烦的来源。我使用x64版本的Windows 7.我的应用程序使用can't be loaded in x64 context的一些COM服务器(通常的本机x32 COM服务器)。所以我决定使用WOW将其作为x32 app运行,所以我将平台目标设置为x32。但是调试器开始显示诸如“源文件不同......”之类的消息。我不明白为什么它作为作品。我将写信给微软支持团队。

4 个答案:

答案 0 :(得分:1)

您可以通过转到“工具”,“选项”,“调试器”部分以及取消选中Require source files to exactly match the original version来告诉它忽略该问题。

要解决此问题,请检查装配位置。您的程序可能引用了提供程序DLL的不同版本而不是调试程序中的版本。尝试删除引用并添加项目引用。

编辑:尝试从GAC中删除提供程序(手动或在构建后步骤的开头)

答案 1 :(得分:1)

Visual Studio 2008中的“源文件不同......”消息是在x64 Windows上调试x32应用程序的结果。见new thread

答案 2 :(得分:1)

如果您使用的是Visual Studio Express,则可能没有Build-> Clean Solution。

尝试删除位于C:\ Users \ yourusername \ Documents \ Visual Studio 2010 \ Projects \ yourproject \ yournamespace \ bin \ Debug中的pdb调试文件。

如果您害怕完全删除该文件,我会将其移至临时文件夹。

然后尝试调试 - >开始调试(F5)

快乐的编码!

答案 3 :(得分:0)

尝试清理(Build-> Clean Solution),然后重建All(Rebuild Solution)。