在Visual Studio 2005中,我們可以通過將啓動外部程序路徑設置爲我們的本機應用程序來構建託管類庫並進行調試。本機應用程序將通過com創建並運行託管代碼。啓動本機應用程序時,無法調試託管類庫
在visual studio 2012中,同樣的過程似乎不起作用。當本機應用程序啓動時,模塊窗口中似乎沒有加載任何東西。
分離調試器並重新連接到正在運行的進程會導致模塊被加載,並且現在可以調試託管類庫。
如何獲取模塊自動加載?
在Visual Studio 2005中,我們可以通過將啓動外部程序路徑設置爲我們的本機應用程序來構建託管類庫並進行調試。本機應用程序將通過com創建並運行託管代碼。啓動本機應用程序時,無法調試託管類庫
在visual studio 2012中,同樣的過程似乎不起作用。當本機應用程序啓動時,模塊窗口中似乎沒有加載任何東西。
分離調試器並重新連接到正在運行的進程會導致模塊被加載,並且現在可以調試託管類庫。
如何獲取模塊自動加載?
當本地應用程序啓動使用與Visual Studio工具版本不同的CLR的.NET Framework版本時,會發生這種情況。
例如,如果您的本機應用程序使用.NET 2.0,並且您使用的是VS2012,那麼您需要手動將調試程序指向正確版本的框架。
可以通過添加指定CLR版本[本地應用] .exe.config文件與,例如(到.NET 2.0 - 3.5,CLR 2.0)做到這一點:
<?xml version ="1.0"?>
<configuration>
<startup>
<!-- Required for automatic Module debugging. -->
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>
這是一個已知的問題,如果你想了解更多:
它工作在VS2012完全相同的方式。你可能忘了在.NET項目中啓用非託管調試。 –
mmm啓用本地代碼調試加載所有本地模塊,但沒有加載託管模塊 – user3013827
嗯,一個明顯的原因是本機代碼無法加載託管模塊。在COM錯誤檢查上採取捷徑是一個非常常見的錯誤。你已經有了調試器,現在可以更好地使用它了。 –