出錯提示:
正嘗試在 OS 載入程序鎖內執行托管代碼。
不要嘗試在 DllMain 或映像初始化函數內執行托管代碼,這樣做會導致應用程序掛起。
原因分析:
.NET2.0中添加了42種非常強大的調試助手(MDA。Loaderlock 是當中之中的一個。Loaderlock檢測在一個擁有操作系統loader lock的線程上執行托管代碼的情況。這樣做有可能會引起死鎖。而且有可能在操作系統載入器初始化DLL前被使用。盡管 這樣做非常有必要。但在進行開發調試的時候,實在太麻煩。
這是因為正在載入特定資源:比如換膚控件等。
解決方式一:
1、把VS菜單的 調試->異常->Managed Debuggin Assistants->LoaderLock 的選中狀態去掉。
2、假設異常(exception)這一項沒有的話,在工具---自己定義---命令選項卡---左邊選擇調試--右邊把異常托到菜單里。
3、快捷鍵Ctrl+Alt+E,改動Managed Debuggin Assistants->LoaderLock 的選中狀態去掉。
解決方式二:
1、在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework以下添加一個String,值為"0"
2、只是這樣做,在該計算機上全部基於.NET2.0開發都得不到MDA的優點
參考文章:
http://blog.csdn.net/kissqi/article/details/4872316