C# &引用;源文件不同……”;Visual Studio 2008中的消息是在x64 Windows上调试x32应用程序的结果

C# &引用;源文件不同……”;Visual Studio 2008中的消息是在x64 Windows上调试x32应用程序的结果,c#,visual-studio,debugging,visual-studio-2008,C#,Visual Studio,Debugging,Visual Studio 2008,我正在编写ADO.NET提供程序。对于调试,我使用类DbProviderFactorys.GetFactory方法。此方法构造继承的DbProviderFactory类,用于创建提供程序的DbConnection继承器等。。当我尝试在我的提供程序代码中设置断点时,我知道这不是工作-执行不会停止。当我在代码中抛出异常时,VS2008显示了一个消息框,描述“源文件不同…”。 前一天调试工作正常,但现在不行。有人知道解决我的问题的“神奇复选框”吗?有什么想法吗 更新1:提供程序程序集正在生成后步骤中添

我正在编写ADO.NET提供程序。对于调试,我使用类DbProviderFactorys.GetFactory方法。此方法构造继承的DbProviderFactory类,用于创建提供程序的DbConnection继承器等。。当我尝试在我的提供程序代码中设置断点时,我知道这不是工作-执行不会停止。当我在代码中抛出异常时,VS2008显示了一个消息框,描述“源文件不同…”。 前一天调试工作正常,但现在不行。有人知道解决我的问题的“神奇复选框”吗?有什么想法吗

更新1:提供程序程序集正在生成后步骤中添加到GAC。编译器在解决方案中未找到错误。 Update2:静态引用程序集的源代码也“不同”


更新3和最后一次:我发现了麻烦的根源。我使用x64版本的Windows7。我的应用程序使用一些COM服务器(通常是本机x32 COM服务器),这些服务器。所以我决定使用WOW作为x32应用程序运行它,所以我将平台目标设置为x32。但调试器开始显示类似“源文件不同…”的消息。我不明白为什么它能起作用。我将写信给microsoft支持团队。

尝试执行清理(生成->清理解决方案),然后重新生成所有(重建解决方案)。

尝试执行清理(生成->清理解决方案),然后重新生成所有(重建解决方案)。

您可以通过转到工具、选项、调试器部分,告诉它忽略此问题,取消选中
要求源文件与原始版本完全匹配

要解决此问题,请检查部件位置。程序引用的提供程序DLL版本可能与调试器中的版本不同。尝试删除引用并添加项目引用


编辑:尝试从GAC中删除提供程序(手动或在生成后步骤开始时)

您可以通过转到“工具”、“选项”、转到“调试器”部分,然后取消选中“要求源文件与原始版本完全匹配”来告诉它忽略该问题

要解决此问题,请检查部件位置。程序引用的提供程序DLL版本可能与调试器中的版本不同。尝试删除引用并添加项目引用


编辑:尝试从GAC中删除提供程序(手动或在生成后步骤开始时)

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

如果您使用的是Visual Studio Express,则可能没有生成->清理解决方案

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

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

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


快乐编码

如果您使用的是Visual Studio Express,则可能没有生成->清理解决方案

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

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

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


快乐编码

这是我做的第二件事。首先是重建解决方案。)这是我做的第二件事。首先是重建解决方案。我的程序集不是静态引用的,我写道我使用DbProviderFactorys.GetFactory创建实例。2.我认为取消选中“要求源文件与原始版本完全匹配”并不是解决问题的好方法,它只是隐藏它。PS:我也喜欢Sara Ford)1:看起来像是
dbProviderFactorys。GetFactory
正在使用较旧版本的程序集。尝试将其从GAC中删除。2:这就是为什么我说它会忽略问题,而不是解决问题。不幸的是,它没有帮助。但我注意到,即使是静态引用程序集的源代码也是“不同的”。请查看模块窗口(Debug,Modules),并查看它从何处加载程序集。然后,检查文件的修改日期,并尝试将其删除。程序集是从GAC加载的(c:\Windows\Assembly\GAC\U MSIL\MyAssemblyName\1.0.11.0\UU 78db361f61f0be66)。创建时间为3分钟前(添加到构建后步骤)。PDB是从我的调试文件夹加载的。好啊我再次从GAC中删除了所有程序集,清理了调试文件夹并删除了所有obj文件夹。重建和。。。。“源文件不同…”如ussual.1所示。我的程序集不是静态引用的,我写道我使用DbProviderFactorys.GetFactory创建实例。2.我认为取消选中“要求源文件与原始版本完全匹配”并不是解决问题的好方法,它只是隐藏它。PS:我也喜欢Sara Ford)1:看起来像是
dbProviderFactorys。GetFactory
正在使用较旧版本的程序集。尝试将其从GAC中删除。2:这就是为什么我说它会忽略问题,而不是解决问题。不幸的是,它没有帮助。但我注意到,即使是静态引用程序集的源代码也是“不同的”。请查看模块窗口(Debug,Modules),并查看它从何处加载程序集。然后,检查文件的修改日期,并尝试将其删除。程序集是从GAC加载的(c:\Windows\Assembly\GAC\U MSIL\MyAssemblyName\1.0.11.0\UU 78db361f61f0be66)。创建时间为3分钟前(添加到构建后步骤)。PDB是从我的调试文件夹加载的。好啊我再次从GAC中删除了所有程序集,清理了调试文件夹并删除了所有obj文件夹。重建和。。。。“源文件不同…”如ussual所示。