“mscorlib.pdb not loaded” yet the mscorlib.dll is

2019-02-02 02:09发布

I am running my application in VS2012 and I am getting a runtime error; enter image description here

When I look in the "Original Location" I see mscorlib.dll, but not mscorlib.pdb.

Why is this happening and how do I fix it?

9条回答
别忘想泡老子
2楼-- · 2019-02-02 02:26

This can happen when you initialize a variable in your class declarations and that initialization throws an exception:

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;
}

If an exception is thrown by getOracleConnection() you can get this error. Move your assignment (but not necessarily your declaration) inside of main (where it belongs anyway), and you will get the actual exception that is causing the error instead of the mscorlib error.

查看更多
别忘想泡老子
3楼-- · 2019-02-02 02:30

This happened to me for a different reason: I had referenced an old version of NLog (2.0) and needed to reference version 4.0, instead.

查看更多
\"骚年 ilove
4楼-- · 2019-02-02 02:30

This thread is old but if you landed here like I did and none of the above solutions worked for you, here's how I solved this impasse: In my case the exception began to appear after I changed the "Assembly name" in the "Application" tab of the properties window. If that's the case with you try reverting to the original name and see if the exception disappears. Perhaps the reason for this was that the new name did not match the "AssemblyTitle" in the "AssemblyInfo.cs"

查看更多
成全新的幸福
5楼-- · 2019-02-02 02:41

Goto Tools, Options, Debugging, Symbols and set a cache location. Then hit load in the above and it will fetch the necesary symbols for you and store them in the cache location you provide.

Microsoft's compiler tools create symbols in separate files with a .pdb extension (program database). This allows them to create detached symbols for release binaries. With a symbol server, your IDE can fetch the symbol file matching the specific version of the DLL during debugging. You can configure this system for your own product binaries as well which can be very useful for post-mortem debugging any crashes on end-user machines.

See Microsoft's documentation for more details about using their public symbols.

查看更多
小情绪 Triste *
6楼-- · 2019-02-02 02:42

The best Solution to solve this error is:

1: Open App.config file.

2: Paste this useLegacyV2RuntimeActivationPolicy="true" code in the startup tag.

3: Save it.

Now the error would disappear. Moreover see this Image. I have done this for you.

查看更多
聊天终结者
7楼-- · 2019-02-02 02:42

In a VB console app, in my case it was none of the above.

Just doing a string calculation in the Dim declarations before my subs.

The offending code:

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

Moving this calculation into the sub it was needed in fixed it! GERONIMO!!

查看更多
登录 后发表回答