我在VS2012中运行我的应用程序,并且遇到运行时错误;
当我在“原始位置”中查看时,我看到了mscorlib.dll,但没有看到mscorlib.pdb。
为什么会发生这种情况,我该如何解决?
我在VS2012中运行我的应用程序,并且遇到运行时错误;
当我在“原始位置”中查看时,我看到了mscorlib.dll,但没有看到mscorlib.pdb。
为什么会发生这种情况,我该如何解决?
Answers:
转到工具,选项,调试,常规,仅启用我的代码
这将防止调试器尝试在内部.NET Framework程序集上启动。
转到工具,选项,调试,符号并设置缓存位置。然后点击上面的load,它将为您获取必要的符号,并将其存储在您提供的缓存位置。
Microsoft的编译器工具在扩展名为.pdb的单独文件(程序数据库)中创建符号。这使他们可以为发布二进制文件创建分离的符号。使用符号服务器,您的IDE可以在调试期间获取与DLL的特定版本匹配的符号文件。您也可以为自己的产品二进制文件配置此系统,这对于事后调试最终用户计算机上的任何崩溃非常有用。
有关使用公共符号的更多详细信息,请参见Microsoft文档。
我在使用静态变量时遇到了这个问题,该变量的值是通过静态方法分配的。
因此,每当我运行该应用程序时,此行代码就会引发异常。如果将调试点放置在此位置(如我所做的那样),则会注意到抛出了异常。
在VB控制台应用程序中,就我而言,以上都不是。
只需在subs之前的Dim声明中执行字符串计算。
令人反感的代码:
Dim FylPrefix $ = Fyl.Substring(0,Fyl.LastIndexOf(“。”))
将此计算移到需要修复的子项中!杰罗尼莫!!
当您在类声明中初始化变量并且初始化引发异常时,可能会发生这种情况:
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错误。