簡體   English   中英

你怎么知道你的c#應用程序使用的是哪個dll?

[英]How do you tell which dll your c# application is using?

我有一個使用.dll的應用程序,它在位置x中充滿了gui應用程序代碼。 它用來有1個按鈕,但現在有2個。

當我啟動我的應用程序時,我期望看到的是一個帶有2個按鈕的gui,但是我看到一個帶有1個按鈕的gui。 我重建了我的gui .dll,但它神奇地使用了某個地方的舊版本。 如果我嘗試調試我的代碼,它說我使用的代碼版本與.dll中的代碼版本不同

我的問題是,“我如何才能找到它在哪里尋找.dll以及為什么它會使用舊版本,因為我只有一個地方可以將.dll編譯成?”

還想說明我已經引用它,它是正確的版本,其中有2個按鈕..但是當我運行它是使用另一個版本???

如果您使用的是Visual Studio,請打開“模塊”窗口,調試 - > Windows->模塊(Ctrl-D + M),這將列出所有已加載的程序集。

您還可以在運行時使用AppDomain.CurrentDomain.GetAssemblies()並查看每個Assembly.CodeBase的列表。

如果所有其他方法都失敗了,您也可以使用sysinternals中的ProcessMonitor http://technet.microsoft.com/en-us/sysinternals/bb896645並查看您的進程加載了哪些dll,但是您將過濾掉大量的輸出。

如果您正在調試,可以打開“ 模塊”窗口(“ 調試” >“ Windows” >“ 模塊” )。 這將顯示加載到您的進程中的所有可執行文件,包括名稱和完整路徑。 然后,您應該能夠找出加載了過時DLL的位置。

您可以嘗試在System.Reflection命名空間中使用Reflection

var assembly = Assembly.Load("your-assembly-name");

然后檢查assembly對象的版本信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM