“mscorlib.pdb未加载”但mscorlib.dll没有丢失

时间:2014-02-24 10:34:08

标签: visual-studio-2012

我在VS2012中运行我的应用程序,我收到运行时错误; enter image description here

当我查看“原始位置”时,我看到了mscorlib.dll,但没有看到mscorlib.pdb。

为什么会发生这种情况,我该如何解决?

9 个答案:

答案 0 :(得分:115)

转到工具,选项,调试,常规,启用我的代码

这将阻止调试器尝试在内部.NET Framework程序集上启动。

答案 1 :(得分:7)

转到工具,选项,调试,符号并设置缓存位置。然后在上面点击加载,它会为你获取必要的符号并将它们存储在你提供的缓存位置。

Microsoft的编译器工具在具有.pdb扩展名(程序数据库)的单独文件中创建符号。这允许他们为发布二进制文件创建分离符号。使用符号服务器,IDE可以在调试期间获取与DLL的特定版本匹配的符号文件。您可以为自己的产品二进制文件配置此系统,这对于事后调试最终用户计算机上的任何崩溃非常有用。

有关使用公共符号的详细信息,请参阅Microsoft's documentation

答案 2 :(得分:2)

当我使用静态变量时,我遇到了这个问题,静态变量的值是通过静态方法分配的。

因此,每当我运行应用程序时,这行代码都会引发异常。如果你在这上面放一个调试点(就像我做的那样),你会注意到抛出的异常。

答案 3 :(得分:2)

解决此错误的最佳解决方案是:

1:打开App.config文件。

2:将此useLegacyV2RuntimeActivationPolicy="true"代码粘贴到启动代码中。

3:保存。

现在错误会消失。 此外,请参阅this图片。我已经为你做了这件事。

答案 4 :(得分:1)

这种情况发生在我身上的原因不同:我引用了旧版本的NLog(2.0),需要引用4.0版本。

答案 5 :(得分:0)

在VB控制台应用程序中,就我而言,它不属于上述情况。

在我的潜艇之前的Dim声明中进行字符串计算。

违规代码:

Dim FylPrefix $ = Fyl.Substring(0,Fyl.LastIndexOf("。"))

将此计算移动到sub中需要修复它! GERONIMO !!

答案 6 :(得分:0)

该线程很旧,但是如果您像我一样登陆此处,但上述解决方案都不适合您,这就是我解决这种僵局的方法: 在我的情况下,在属性窗口的“应用程序”选项卡中更改“程序集名称”后,异常开始出现。如果是这种情况,请尝试恢复为原始名称,然后查看异常是否消失。 可能原因是新名称与“ AssemblyInfo.cs”中的“ AssemblyTitle”不匹配

答案 7 :(得分:-1)

如果在visualstudio中有这种类型的项目运行时错误 答案:Cntr + Alt + E打开异常窗口取消选中所有chechbox 必须并且赞同其工作由B sriram Mca Giet学院撰写 rajahmundry,东godavary,2014批次

答案 8 :(得分:-1)

当您在类声明中初始化变量并且初始化引发异常时,可能会发生这种情况:

class Program
{
    static OracleConnection ora = getOracleConnection(); 

}
static void main(string[] args) 
{
    ora.Open();
}
static OracleConnection getOracleConnection()
{
   OracleConnection orax = new OracleConnection(description=(host=myHost)
    (port=1521)(protocol=tcp))(connect_data=(sid=mySid)));user id=user;password=pw;
}

如果getOracleConnection()引发异常,则可以得到此错误。将您的分配(但不一定是您的声明)移到main(无论如何属于)内部,您将得到导致错误的实际异常,而不是mscorlib错误。