我们从第三方获取组件,例如Example.dll
。最近供应商引入了一些突破性的变化,但没有改变组件的名称。我可以将新程序集重命名为例如Example2.dll
并使用反射动态加载它?它没有强命名。
最佳答案
是的,您可以重命名它,因为它没有强命名,但是,这不会更改程序集使用的命名空间,并且如果它们被加载到同一个 AppDomain 中,它将与其他程序集发生冲突。
假设您想同时使用两个版本,我能想到的唯一解决方案是将其加载到单独的 AppDomain 中并使用代理进行调用。不过,我不打算详细说明如何做到这一点,因为它可能会变得非常复杂。我的建议是,退回给供应商以更正中断代码,或者给您重命名的程序集。
这里有一个帮助您入门的引用:http://msdn.microsoft.com/en-us/library/yk22e11a(v=vs.110).aspx
关于c# - 重命名 .Net 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23637025/