簡體   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