我有一個包含大約14個項目的解決方案,並且遇到了一個我嘗試在兩個項目:命名空間在使用語句中未被識別。 「類型或命名空間'#'不存在於命名空間'#'中您是否缺少程序集引用?
- Argus.Web(Web應用程序項目)
- Argus.Domain.Office.Command(一個項目,在本地SQL Server數據庫從API和存儲數據讀取數據)
- (還有一個名爲Argus.Domain的項目,我提到它可能是問題的一部分,雖然它在我的代碼中沒有在其他類似的地方引起問題。)
Argus.Domain.Office.Command有一個上下文(argusOfficeContext)將其鏈接到我想從Argus.Web訪問的數據庫。 (在其他情況下,此上下文運行良好。)當我嘗試添加using指令以引用Argus.Web中的類中的上下文名稱空間時,我在標題中看到錯誤。
這裏是我的腳手架了(在Argus.Web)發生錯誤的類:在使用中出現
using Argus.Domain.Office.Command.Models;
namespace Argus.Web
{
public partial class Calculator
{
}
}
紅色的波浪線只在「辦公室」,並完全錯誤的是「命名空間'Argus.Domain'中不存在類型或命名空間'Office'。您是否缺少程序集引用?」。
我已檢查Argus.Domain.Office.Command項目是從Argus.Web引用的,當我檢查Argus.Web構建依賴項時,我看到了Argus.Domain.Office.Command(以及其他項目Argus。域),它被設置爲在Argus.Web之前構建。當我檢入Argus.Web References>項目項目Argus.Domain.Office.Command在它旁邊有一個勾號,並且我得出結論,因此它被引用。
繼Peter D的評論我檢查了命名空間聲明,它在項目Argus.Domain.Office.Command中聲明。
(也許無關緊要:)這裏是一流的,我想引用
using System.Data.Entity;
using Argus.Domain.Office.Command.Models.Mapping;
namespace Argus.Domain.Office.Command.Models
{
public partial class argusOfficeContext : DbContext
{
static argusOfficeContext()
{
Database.SetInitializer<argusOfficeContext>(null);
}
public argusOfficeContext()
: base("Name=argusOfficeContext")
{
}
public DbSet<Location> Locations { get; set; }
public DbSet<LocationPeriodReport> LocationPeriodReports { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new LocationMap());
modelBuilder.Configurations.Add(new LocationPeriodReportMap());
}
}
}
兩個項目針對的.NET Framework 4.5.1,我一直在尋求在各個地方的答案,但修復下面的其他問題似乎並沒有解決我的問題。我在運行Visual Studio 2015的其他問題以供參考:
- 'Using' not detecting namespace-checked client profiling already
- Visual Studio 2010 suddenly can't see namespace?
- Visual Studio 2015 C# Not finding references
如果任何人都可以建議我在做什麼錯了,我真的很感激它。我檢查了很多其他帖子尋找答案,但如果你能提供一個答案的鏈接,我錯過了,這也將是偉大的。
只是爲了迂腐,你的意思是「使用*指令*」而不是「使用*語句*」。他們是兩個完全不同的東西。 –
現貨,糾正,非常感謝。 – Shewan
_「我不相信我錯過了一個程序集參考」__電腦不會信仰。假設名稱空間存在_anywhere_,則缺少對它聲明的程序集的引用。 _「我可以看到它被正確地引用了」_ - 你確定沒有找到名稱空間實際上是在你認爲應該提供的程序集中聲明的嗎?底線,這_is_完全是堆棧溢出的所有其他「命名空間未找到」問題的副本;它們總是歸結爲同一件事情:通過某種機制,失敗包含聲明名稱空間的程序集。 –