【发布时间】:2020-01-30 13:18:53
【问题描述】:
我们最近将一些共享代码从一个程序集拆分为两个程序集,两个程序集的名称都与原始程序集不同。更新应用程序时,我删除了对旧程序集的所有引用并添加了对两个新程序集的引用。编译代码时,它告诉我必须为某些类型添加对旧程序集的引用,即使这些类型是在新程序集之一中定义的。
类型“ICustomerDetails”是在一个未定义的程序集中定义的 参考。您必须添加对程序集“OldAssembly, 版本=xxxx,文化=中性,PublicKeyToken=xxxx'。
示例代码
using newAssemblyOne; -resharper says it not needed
using newAssemblyTwo;
....
var obj = customer.Details;
customer 是在newAssemblyTwo 中定义的接口,编译器对此很满意。
详细信息是在newAssemblyOne 中定义的ICustomerDetails 类型的接口,编译器抱怨它。
customerDetails 从newAssemblyTwo 运行时工作正常。
应用程序和两个程序集都具有相同的目标框架。
任何帮助将不胜感激
【问题讨论】:
-
尝试清理解决方案。删除所有 Bin 目录并重建解决方案。
-
也删除
objfolder。 -
感谢您的建议,仍然有错误。
标签: c# types reference .net-assembly