簡體   English   中英

隨機程序集引用失敗(“您是否缺少 using 指令或程序集引用?”)

[英]Random assembly references fail (“Are you missing a using directive or an assembly reference?”)

我的應用程序混合了面向 3.5 和 4.0 的程序集。 我正在開發針對 4.0 的新 Windows 服務,該項目突然似乎無法在解決方案中看到其他一些程序集。 這意味着,在構建時,對這些某些其他程序集的所有引用都會產生以下錯誤:

命名空間“[Y]”中不存在類型或命名空間名稱“[X]”(您是否缺少程序集引用?)

如果我刪除項目引用並重新添加它,紅色波浪線 go 就會消失,而 Intellisense 會再次啟動,就像它應該的那樣。 解決方案中的所有其他項目都沒有問題。 但是一旦我嘗試構建這個新項目,錯誤就會回來。

失敗的參考之一是我們針對 3.5 的 Core.dll。 我們最近添加了一個面向 4.0 的 CoreEx.dll,在程序集之間共享命名空間。 新服務可以看到 CoreEx.dll 但看不到 Core.dll... 即,當我開始using Core.Utilities... Intellisense 會從 CoreEx.Z06416233FE5EC 僅出現的一組較小的命名空間248AF1Z 但不顯示任何在 Core.dll 中。 我很確定添加此解決方案后成功構建了解決方案,但這是最近的一個顯着變化。

另一個失敗的參考是我們的核心 Data.dll ,它包含一堆數據集和實體框架的東西。 這個最近遷移到 4.0。 同樣,我幾乎肯定遷移項目后構建的解決方案,但值得一提。

最后一個失敗的引用是一個程序集,它使用服務“上一層”的命名空間。 例如,有問題的項目基於命名空間ProductName.Component.ComponentService ,並且無法看到基於命名空間ProductName.Component的項目。 這個是最近與有問題的項目一起創建的,也是針對 4.0。

如您所見,程序集引用失敗似乎沒有任何押韻或原因......並且有問題的項目可以成功引用解決方案中的一些其他程序集。 我試過清理、重建、重新啟動 Visual Studio ......沒有任何東西可以永久修復它。 這可能是什么原因造成的?

檢查新項目的目標平台並確保它不是針對 .NET 4 客戶端配置文件。 如果是,則將其更改為常規 .NET 4

我正在將項目添加到使用 .net 4.5 的解決方案中。 我添加的項目默認為 4.5.1。 這使得 4.5 庫與新項目不兼容。 我進入了我的新項目的屬性,並讓它們以 4.5 為目標,而不是默認的 4.5.1。 完成此操作后,我的解決方案就可以構建了。

解決方案中的依賴項設置是否正確? 我見過不止一次項目 A 依賴於項目 B 的情況,但是由於未設置兩者之間的依賴關系,構建偶爾會失敗。

在這種情況下,根本原因是構建順序不是確定性的,成功/失敗取決於構建哪些項目(基於更改的內容)以及首先構建哪些項目(當多個構建時)。

另請注意,如果您更改命名空間但未更改項目屬性中的程序集名稱,則可能會發生這種情況。

一旦我通過刪除頂部的所有using語句並再次手動編寫它們來解決它,這個問題就發生在我身上。

我遇到了類似的問題,程序集引用失敗(“您是否缺少 using 指令或程序集引用?”)和 VS intellisense 讓我有機會添加 using 但在解決方案中,引用具有黃色圖標和構建失敗了。

我通過查看項目屬性 Target Framework 並將 .net 版本更改為參考解決方案版本解決了這個問題,這解決了所有問題。

注意:.net 版本應該在項目之間兼容。

當我將目標框架更改為 4.0 時,它對我有用。但這不是我們想要的解決方案。我們想在我們的項目中使用 VS 2010 Premium,但目的不是使用 .net 4.0 ......主 class 庫project(.net 2.0) was referencing the dll "system.web.abstractions.dll"...I added the reference to this dll in other projects(.net 2.0) which references the main class library...the solution compiled without任何問題......所以你的視覺工作室解決方案可能就是這種情況......

但是,如果我們使用 VS 2008 專業版,一切正常......我們不需要解決方法,一切都像魔術一樣工作......

暫無
暫無

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

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