【问题标题】:C# compiler is picking the wrong assembly for a typeC# 编译器为一个类型选择了错误的程序集
【发布时间】: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 类型的接口,编译器抱怨它。

customerDetailsnewAssemblyTwo 运行时工作正常。 应用程序和两个程序集都具有相同的目标框架。

任何帮助将不胜感激

【问题讨论】:

  • 尝试清理解决方案。删除所有 Bin 目录并重建解决方案。
  • 也删除objfolder。
  • 感谢您的建议,仍然有错误。

标签: c# types reference .net-assembly


【解决方案1】:

向我提供了其中一个程序集的错误版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多