.net – 是否有可能在类中具有版本无关的DLL引用?
我想创建一个编译成单个DLL的类。该DLL将为现有产品添加功能。
为了使这个工作,定制类引用底层产品中包含的DLL。这些引用是需要编译的。 一切都可以正常运行,并且自定义类编译。我可以将生成的DLL放入产品中,一切正常。 但是,该产品有几个版本(次要版本,服务包)。我想将这个DLL分发给其他人,但我发现DLL必须完全符合产品的版本。如果没有完美匹配,则会出现以下错误:
如何生成一个不挑剔版本参考的DLL?
这是一个很好的解决方案。它为我解决了类似的问题。
Compile a version agnostic DLL in .NET 万一链接死机,关键是处理AppDomain.CurrentDomain.AssemblyResolve事件,如下所示。事件会在程序集绑定失败时触发,因此您可以自己解决问题,修复版本冲突。 using System.Reflection; static Program() { AppDomain.CurrentDomain.AssemblyResolve += delegate(object sender,ResolveEventArgs e) { AssemblyName requestedName = new AssemblyName(e.Name); if (requestedName.Name == "Office11Wrapper") { // Put code here to load whatever version of the assembly you actually have return Assembly.LoadFile("Office11Wrapper.DLL"); } else { return null; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .net – Windows AZURE:类库:如何知道是在Web角色中运行还
- windows – 设置rhc时出错(红帽客户端工具)
- laravel – 从Windows系统中清除Homestead和Vagrant最干净的
- windows – 大写文件名的第一个字母
- <Windows> VS2017使用GoogleTest
- 在Windows Server 2008R2(64位)上运行mongos作为可靠的服务
- windows-8 – Windows 8 Metro是否支持托管c / cli
- windows下不重启电脑使修改后的环境变量生效的方法
- winapi – VS 2012命名修改仍然适用于dll导出
- WinRT和.Net框架