在.NET工作多年后,我问了一个基本的问题。一个刚从大学毕业的孩子问我这个问题,我突然感到困惑!
我在我的.NET项目中引用了一个IBM DATA DB2 DLL。我们最初使用的版本是9.7.0.2。因此,在运行了一些测试之后,我们将IBM DATA DLL升级到了版本9.7.6.2。
现在的问题是,我应该重新编译代码然后运行它,还是可以直接替换build目录中的IBM DATA DLL,它能正常运行吗?
理想情况下,我们应该什么时候重新编译代码?
谢谢你,索尼
发布于 2012-09-05 03:59:18
这实际上完全取决于DLL和生成它的第三方。您需要查看文档并查找已弃用和修改过的函数(您是否在调用其中的任何函数?)即使文档说什么都没有改变并且被弃用,你仍然应该做一个回归测试。文档不是代码,代码才是最重要的事实。
在理想的情况下,公共API中不会有任何改变或废弃,DLL (接口)的编写者只会添加新的函数。不幸的是,我们不能指望它。
简而言之:如果您在DLL中调用的任何函数被修改或弃用,您必须重新构建,否则不会。
发布于 2012-09-05 03:58:42
这取决于您引用DLL的方式。在解决方案资源管理器中,选择项目并展开其中的引用。选择DLL并查看Property "Specific Version"的属性编辑器窗口。如果将其设置为false,则只需替换输出中二进制文件,否则,如果应用程序找不到DLL的确切版本,它将抛出错误。
发布于 2012-09-05 03:56:02
不能更改库的版本,除非您专门针对某个库(作为when using entity framework and mysql adapter),然后您需要更改版本号才能工作。其他情况发生在API更改时(不频繁,理想情况下不是but it happens)。
https://stackoverflow.com/questions/12270427
复制相似问题