【发布时间】:2010-04-07 19:32:16
【问题描述】:
我有一个关于 .NET 框架 (2.0) 如何解析依赖程序集的问题。
我们目前正在对一个大型 ASP.NET 应用程序和各种附属可执行文件进行一些重写。我们开发了一个新的 API 来解决我们的基础类也存在一些令人烦恼的问题。到目前为止,这是一个正常的,尽管影响广泛的更新。
我们的层次结构是:
- ASP.NET (aspx)
- 业务逻辑 (DLL)
- 基础类 (DLL)
所以 ASP.NET 不适合,一些 DLL(特别是基础类)有一个重定向层,其中包含旧的命名空间/函数并将它们转发到新的 API。当我们替换 DLL 时,ASP.NET 很好地选择了它们(可能是因为它触发了重新编译)。
但预编译的应用程序不会,即使相同的命名空间和类位于两组 DLL 中。即使文件被重命名,它也会抱怨 assemblyname 属性不同(必须如此)。我知道你可以重定向到同一个程序集的不同版本,但是有什么方法可以重定向到完全不同的程序集?
替代方法是重新编译应用程序(不要真的想要,因为应用程序本身没有更改)或使用引用新基础 DLL 的存根重新编译旧的基础 DLL(新的虚拟 DLL 是文件系统混乱) .
【问题讨论】:
标签: c# .net assemblies resolve