[英]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.