簡體   English   中英

該類型在未引用的程序集中定義

[英]The type is defined in an assembly that is not referenced

我剛剛開始將合作伙伴辦公室解決方案中的一些項目納入我們的解決方案中。 該程序是一個C#winform應用程序。

該程序已編譯,一切正常,但是昨天我又去構建,它無處不拋出錯誤“在未引用的程序集中定義了'Namespace.MainFrameDisplay'類型。您必須添加對程序集的引用'OtherAssembly,版本= 1.7.0.0,文化=中性,PublicKeyToken = 52af1880d3cd7291” (據我所知,OtherAssembly在原始項目中未用作參考。Assembly與OtherAssembly之間存在兼容性問題,添加了OtherAssembly網絡大約100個錯誤。)

以及相關的錯誤“無法將類型'Namespace.MainFrameDisplay'隱式轉換為'Namespace.MainFrameDisplay'[c:\\ Dev \\ program \\ bin \\ debug \\ Assembly.dll]

該錯誤的偽代碼片段為:

private MainFrameDisplay _MainFrame;  //definition
_MainFrame = this.Mainframe;  // error is thrown here
_MainFrame.Parent.Controls.Add(_NotifyBar);

如果刪除定義,則錯誤仍然存​​在。
如果我刪除引發錯誤的行,則可以正常編譯。 即使調用_MainFrame.Parent。

我已經盡力刪除/刪除這個麻煩的項目並解壓縮/添加原始文件的新副本,但是問題仍然存在。 有什么想法,建議嗎?

好吧...........我當然是在發帖后才想到的。

(-_-)

因此,我們稱其為后代技​​巧。

在上面的代碼中,“ this”引用一個基類,這是我要引入我們的解決方案的其他項目之一。 我將原始基類項目的引用與我的版本進行了比較,並確定我偶然地包含了對“ OtherAssembly”而不是“ Assembly”的引用。 (他們的真實姓名非常相似。)

錯誤的引用不會在基類中引起任何問題,但是會在派生類中引起沖突。 切換,修復,編譯成功。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM