繁体   English   中英

C#-引用类型'ISomeInterface'在未引用的程序集中定义

[英]C# - The reference type 'ISomeInterface' is defined in an assembly that is not referenced

我负责将我们公司的核心库从曾经在Visual Studio 2008上运行的Compact Framework 2.0迁移到Visual Studio 2015,Update 3和.Net 4.6。 我创建了新的类库,并更改了引用以指向旧库的相应.Net版本。 例如,如果在新的ProducCoreDotNet库中有一个引用Sender.dll和Utils.dll的ProdoctCore库,则我已将其引用添加到SenderDotNet.dll和UtilsDotNet.dll。 然后,我通过“作为链接”添加旧的Compact Framework的类文件到新的解决方案。 因此,基本上项目名称具有扩展名DotNet,但名称空间具有与之前完全相同的名称。

现在我面临的问题是我遇到了一个奇怪的错误:

“引用类型'IMonitorComponent'在未引用的程序集中定义。您必须添加对程序集'Utils,Version = 1.5.0.0,Culture = neutral,PublicKeyToken = null的引用”

但是,我的UtilsDotNet的版本是1.0.0.0,而旧的Utils的版本是2.0.0.0。

我已经在SO上阅读了几个类似的线程,但是与该问题中提到的不同,IMonitorComponent没有对其他程序集的任何引用。 它只是具有几个属性的接口:

 public enum COMPONENT_STATUS
{
    ERROR,
    WARNING,
    OK,
    UNKNOWN,
    DISABLED
}

public class ComponentStatusProperty
{
    public ComponentStatusProperty(string name, COMPONENT_STATUS status, string message)
    {
        ComponentName = name;
        Status = status;
        Message = message;
    }

    public COMPONENT_STATUS Status { get; set; }
    public string Message { get; set; }
    public string ComponentName { get; set; }
}

public interface IMonitorComponent
{
    string Name { get; }
    List<ComponentStatusProperty> Statuses { get; }
    bool ComponentSoBrokenThatTheDeviceCannotWork { get; }
}

因此,我没有想法,不胜感激您的帮助。 另外,请详细说明您的答案,因为我之前从未做过这样的事情。

我们终于找到了原因。 我们使用的另一个参考使用的是Utils 1.5版。 因此,我为该参考创建了另一个类库,并使用新的UtilsDotNet作为其参考,并解决了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM