我们最近决定开始向产品本身提供产品所需的某些DLL文件的版本。
这是为了防止(例如)在部署软件的服务器上更新MVC DLL文件并且产品无法正常运行,因为它是针对现在的DLL版本编写的。< / p>
如果特定版本的MVC DLL文件包含在产品中并且“本地”引用,则可以防止此问题发生。 (在理想情况下,将安装到目标服务器上的每个产品都将更新到最新版本,但这并不总是实用的)
我的担心和问题是,在以下情况下,这是否会给出错误的安全感或实际上是否应对问题:如果MVC DLL文件的1.0版依赖于标准Microsoft DLL库Y的方法X并且这个DLL文件更新了,我们会遇到产品破损的情况吗?
答案 0 :(得分:2)
假设您的意思是MSVC(Microsoft Visual C ++)DLL,正确的解决方案是使用应用程序清单。 MSVC DLL支持并排安装(SxS)。这意味着这些DLL的新版本不会替换旧版本。您的应用程序清单告诉Windows您需要哪些DLL版本。
答案 1 :(得分:0)
我并不特别了解MVC,但是如果将依赖dll的冲突版本安装到目标计算机上的GAC上,则会遇到更大的问题,因为它将优先于本地文件使用。
答案 2 :(得分:0)
根据您制作最终产品的大小,请考虑静态链接您的计划。这将防止可怕的DLL地狱,因为你不必提供DLL。