2011-04-27 52 views
0

我正在編寫一個使用非託管庫的程序。 什麼是最佳做法來處理可用的foo.dll是不兼容版本的情況?.NET非託管庫加載:處理錯誤狀態

示例:用戶啓動該程序,並具有程序所期望的DLL的舊版本。無論如何你會嘗試使用它,因爲在成熟的圖書館中,突變的API更改應該不常見?立即出錯?在程序中維護一個資源,並使用每個非託管DLL的下載位置? 還是認爲最好將每個DLL包含在項目自己的文件夾中,並堅持使用該文件?

現在,我做了後者,並用新的項目版本更新了DLL,但我希望我的軟件具有與實際相同的容錯功能,並且我不知道使用非託管DLL(除非你必須「不要使用它們」)。

回答

0

假設非託管DLL在編譯時嵌入了版本信息,可以在應用程序加載時使用System.Diagnostics中的FileVersionInfo類來檢查兼容版本。

如果找不到兼容版本,則提醒用戶?

http://msdn.microsoft.com/en-us/library/system.diagnostics.fileversioninfo.aspx

+0

我本來應該更加明確 - 尋找DLL版本是沒有問題的。問題更多地是關於最佳實踐而不是具體實施。例如,是否會拋出異常,如果是這樣,哪個異常(自定義?)。我正在嘗試處理最佳實踐,但在處理非託管庫時無法找到處理某些情況的好文章。 – 2011-04-27 19:10:55