我正在编写一个使用非托管库的程序。 处理可用 foo.dll 版本不兼容的情况的最佳做法是什么?
示例:用户启动程序并具有比程序所期望的旧版本的DLL。您是否会尝试使用它,因为破解API更改在成熟的库中应该不常见?马上出错了吗?维护程序中的资源,并为每个使用的非托管DLL提供下载位置? 或者最好将每个DLL包含在项目自己的文件夹中并坚持使用该文件?
现在,我执行后者,并使用新的项目版本更新DLL,但我希望我的软件具有实际的容错能力,并且我不知道使用非托管DLL的任何最佳实践(除非“不要使用它们”,否则除外)。
答案 0 :(得分:0)
假设非托管DLL在编译时嵌入了版本信息,您可以在应用程序加载时使用System.Diagnostics中的FileVersionInfo类来检查兼容版本。
如果找不到兼容版本,请提醒用户?
http://msdn.microsoft.com/en-us/library/system.diagnostics.fileversioninfo.aspx