簡體   English   中英

VS 2015共享項目導致X程序集和Y程序集中都存在類型(CS0433)

[英]VS 2015 Shared Project causes Type exists in both X assembly and Y assembly (CS0433)

我正在嘗試為每個項目實現一個公共屬性類型和對應的枚舉類型,以將其包含在AssemblyInfo.cs中,以用作元數據。 解決方案中的所有項目都需要該屬性。

我創建了一個Visual Studio 2015共享項目,並包含了這些類型。

隨后,我在一些基本級別的程序集中引用了共享項目,這些程序沒有相互依賴性。 但是,如果在較大的項目中包含兩個或多個這些程序集作為引用,則會收到“ X程序集和Y程序集都存在類型”(CS0433)

我是否錯誤地實施了共享項目? 這是解決指定任務的不好方法嗎?

當您在頂部有兩個using語句,其中包含具有相同名稱的類時,就會發生這種情況。 有兩種可能的方法來解決此問題。

  1. using引用刪除一個(或兩個),並長期輸入類名和類型。

例:

//using System.Data.SqlClient;
//using System.Data.OleDbClient;

var p1 = new System.Data.SqlClient.Parameter();
var p2 = new System.Data.OleDbClient.Parameter();

要么

  1. 別名都using引用。 您仍然必須限定類名,但是您可以使用別名而不是完整的全稱。

例:

using Db1 = System.Data.SqlClient;
using Db2 = System.Data.OleDbClient;

var p1 = new Db1.Parameter();
var p2 = new Db2.Parameter();

我似乎偶然發現了一個答案。 我在自己的名稱空間下聲明了共享項目類型。

當我從代碼中刪除名稱空間塊時,代碼已正確編譯。

我不確定這是否是對該問題的合法解決方案,但這似乎使編譯器感到滿意。

暫無
暫無

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

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