簡體   English   中英

引用的程序集引用錯誤

[英]referenced assembly reference error

我有3個項目。 A,B和X

Project X是一個類庫,其中包含我的EntityFramework EDMX數據庫模型。 在項目A中引用了項目X。我想在項目B中使用項目A和項目X。

我發現這有點復雜:我有4個項目。 A,B,C和X

Project X是一個類庫,其中包含我的EntityFramework EDMX數據庫模型。 項目A是Silverlight項目。 項目B是SilverlightApplication.Web項目。 項目C是一個類庫項目。

項目B中引用了項目X。項目A以項目B為參考。 項目B是在項目A中自動生成的。項目C應引用項目A,B和X。

錯誤消息:在“ D:\\ Projectgroup \\ ProjectA \\ bin \\ ProjectA.dll”和“ D:\\ Projectgroup \\ ProjectX \\ bin \\ ProjectX.dll”中都存在“類型” ProjectX.Location“

當我查看Project A中項目B的自動生成的代碼時,我看到Project X的DatabaseModel(edmx)的某些類,但不是全部,都在Project X的命名空間中。

嘗試使用extern Alias,它使您可以將程序集包裝在以別名命名的根級名稱空間中,從而使它們可以在同一文件中使用。 盡管我建議您檢查一下代碼的結構,以便避免這種情況

引用表單中的同一程序集

     /==>A==\
    /        \
    B=======> X

根本不是問題,並且不應引起任何錯誤或警告... 只要 X的兩條路徑的標識相同即可。 因此,基本上請確保您只有X的一個版本 如果您未啟用強命名,這會更容易,但是即使使用強命名,也應該只是確保引用正確的一種情況。

我認為您的問題是,您在相同的名稱空間中定義了兩個名稱相同但程序集不同的不同類型。

例如,在以下情況下我提到了錯誤:

ClassLibrary1.Class1.cs (Assembly1)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
  public class Class1
  {
  }
}

ClassLibrary2.Class1.cs (Assembly2)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
  public class Class1
  {
  }
}

Program.cs (Assembly3)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using ClassLibrary1;


namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
        Class1 a;
    }
  }
}

在此處輸入圖片說明

因此,請確保不同程序集的名稱類型不同。

暫無
暫無

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

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