我在VS2012中运行我的应用程序,我收到运行时错误;
当我查看“原始位置”时,我看到了mscorlib.dll,但没有看到mscorlib.pdb。
为什么会发生这种情况,我该如何解决?
答案 0 :(得分:115)
转到工具,选项,调试,常规,启用我的代码
这将阻止调试器尝试在内部.NET Framework程序集上启动。
答案 1 :(得分:7)
转到工具,选项,调试,符号并设置缓存位置。然后在上面点击加载,它会为你获取必要的符号并将它们存储在你提供的缓存位置。
Microsoft的编译器工具在具有.pdb扩展名(程序数据库)的单独文件中创建符号。这允许他们为发布二进制文件创建分离符号。使用符号服务器,IDE可以在调试期间获取与DLL的特定版本匹配的符号文件。您可以为自己的产品二进制文件配置此系统,这对于事后调试最终用户计算机上的任何崩溃非常有用。
有关使用公共符号的详细信息,请参阅Microsoft's documentation。
答案 2 :(得分:2)
当我使用静态变量时,我遇到了这个问题,静态变量的值是通过静态方法分配的。
因此,每当我运行应用程序时,这行代码都会引发异常。如果你在这上面放一个调试点(就像我做的那样),你会注意到抛出的异常。
答案 3 :(得分:2)
解决此错误的最佳解决方案是:
1:打开App.config文件。
2:将此useLegacyV2RuntimeActivationPolicy="true"
代码粘贴到启动代码中。
3:保存。
答案 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错误。