我以爲我知道這個答案,我知道它是從反射引用的庫。不過,我有一種情況,我試圖調試一個C#程序,使用第二個參考程序,用VB.NET編寫(也就是說,我試圖用C#重寫VB.NET程序)。元數據來自.NET(Visual Studio 2012)
我正在查看的特定代碼使用了一個引用類,而我的C#程序的F12(進入定義)將對象元數據加載到一個新窗口中;然而,VB.NET程序中的相同動作將我帶到對象瀏覽器,聲稱引用的dll位於不同的位置(它們都引用相同的庫)。
在這樣的中心方面,這兩種語言可能有不同的表現嗎?還是有另一部分引用一個我不知道的庫?
可能發生的事情是C#程序在PDB所在的目錄中引用DLL。調試器正在加載PDB,因此知道源文件在本地計算機上的位置。 VB程序也沒有這樣做。或者,也許你有一個可以爲你分解的插件,它只適用於C#應用程序。 Visual Studio不會拆卸插孔。 – Will
您的程序集元數據和調試信息令人困惑。元數據爲兩者加載 - 它始終加載。它是CLI程序集的基礎部分。 – asawyer
引用程序集的目錄沒有PDB文件。此外,這是設計時間(即在程序未運行時按F12)。 –