![](/img/trans.png)
[英]Warning “The type X in Y.cs conflicts with the imported type X in Z.dll”
[英]How to deal with The type 'Foo' in 'File1.cs' conflicts with the imported type 'Foo' in 'File2.dll' warning
我具有以下解決方案結構:項目A項目B(WCF)項目C(單元測試)
我從項目B生成一個代理。該代理隨后包含在項目A和項目C中。項目C也引用項目A。因此,在編譯時,我收到了上千種類型的警告:
“ File1.cs”中的“ Foo”類型與“ File2.dll”中的導入類型“ Foo”沖突。
解決此問題的最佳方法是什么? 我嘗試使用#PRAGMA IGNORE,但在這種情況下找不到警告號。
謝謝!
最好的情況是使用不同的命名空間。
所以ProjectA
namespace Project.Library
項目B
namespace Project.Service
項目C
namespace Project.Test
然后,您可以在沖突類中使用別名。
例如,說Project.Library.User和Project.Service.User都存在。
您想要訪問服務中庫的用戶類,可以執行以下操作:
using Library = Project.Library;
namespace Project.Service
{
public class User
{
public int GetUserId()
{
Library.User myLibUser = new Library.User();
return myLibUser.Id;
}
}
}
當您訪問類型時,請完全限定它的類型(通過在namespace.sclass中進行調用,這樣就不會產生歧義。
例如:
因此,您具有相同的類名,但使用不同的名稱空間。
如果您有可能使用與導入內容中相同的名稱空間(這不太可能),那么您或外部代碼提供者都將不得不更改名稱空間。
我有同樣的問題。 我正在使用VS 2010 Pro。 我忽略了大約10個小時; 不只是錯誤,還包括編譯時的錯誤。 那BAM!
我所做的只是導航到“ Build
選項卡,然后單擊“干凈解決方案”。
問題解決了。 請確保,您不會在using語句中丟棄不需要處置的任何內容。
從Solution \\ References中刪除對已編譯文件的引用:)
在“類屬性”中,將“構建操作”從“內容”更改為“編譯”
當您知道自己在做什么時,可以使用Pragma 0246取消警告。
我通過開始構建然后在輸出窗口中查找找到了錯誤代碼。 確保在下拉列表中選擇了“構建”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.