技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運營

贊助商

分類目錄

贊助商

最新文章

搜索

匯集asp.net“找不到類型或命名空間名稱”錯誤的8種解決方法

作者:admin    時間:2023-4-27 21:36:1    瀏覽:

asp.net出現(xiàn)“找不到類型或命名空間名稱”錯誤,是每個.NET開發(fā)人員常常遇到的問題,本文匯集了一些可能的解決方法。

方法一

這可能是兩個項目之間 .Net 框架版本不兼容的結(jié)果。

它可以通過兩種方式發(fā)生:

  1. 引用完整框架項目的客戶資料項目
  2. 針對較新框架版本的較舊框架版本

例如,當(dāng)應(yīng)用程序設(shè)置為以 .Net 4 Client Profile 框架為目標(biāo)時,它會發(fā)生,并且它引用的項目以完整的 .Net 4 框架為目標(biāo)。

所以為了更清楚:

  • 項目 A 以客戶資料框架為目標(biāo)
  • 項目 A 引用項目 B
  • 項目B針對完整框架

這種情況下的解決方案是升級應(yīng)用程序的框架目標(biāo)(項目 A),或者降級引用程序集的目標(biāo)(項目 B)。完整的框架應(yīng)用程序可以引用/使用客戶端配置文件框架程序集,但反之則不行(客戶端配置文件不能引用完整的框架目標(biāo)程序集)。

請注意,當(dāng)你在 VS2012 或 VS2013(使用 .Net 4.5 作為默認框架)中創(chuàng)建新項目并且:

  • 引用項目使用.Net 4.0(例如從 VS2010 遷移到 VS2012 或 VS2013 然后添加新項目時很常見)
  • 引用的項目使用更高版本,即 4.5.1 或 4.5.3(當(dāng)將現(xiàn)有項目重新定位到最新版本,但 VS 仍然創(chuàng)建針對 v4.5 的新項目)

這個方法對很多人有用,一網(wǎng)友說到:

這對我有所幫助,我最近將解決方案從VS2010移到了VS2012,并在VS2012中創(chuàng)建了一個新的類庫。突然間我收到了這個錯誤,當(dāng)然這是因為新的類庫以 .NET 4.5 為目標(biāo),而引用它的項目以 .NET 4.0 為目標(biāo)。將新庫降級到目標(biāo) 4.0 修復(fù)了它。

方法二

重新安裝 nuget 包對我有用,在我將 .NET Framework 版本更改為與所有項目同步后,一些 nuget 包(尤其是 Entity Framework)仍然為以前的版本安裝。用“包管理器控制臺”的下面命令為整個解決方案重新安裝包:

Update-Package –reinstall

方法三

有網(wǎng)友說到,刪除了 VS2015 報錯中它找不到的項目引用,然后再次添加它。解決了問題。試過清潔、構(gòu)建和重新啟動 VS 都無濟于事。

這方法得到很多人的支持,認為這是值得強烈推薦的技巧。

每當(dāng)在 VS 解決方案中發(fā)現(xiàn)任何引用問題時,強烈推薦此技巧。在我添加了一個針對更高版本的 .NET 框架的新項目后,它解決了我在 VS2017 中的問題。我敢打賭清除了一些緩存。

編譯器根據(jù)項目構(gòu)建順序進行編譯,因此如果一個項目中存在真正的錯誤,它可能會迷失在“找不到類型或名稱空間”錯誤的海洋中——因為它在找到錯誤,并且無法更新引用。如果沒有列出太多錯誤,你應(yīng)該能夠找到真正的錯誤。不幸的是,我有 100 個,所以這個技巧真的幫了我。我想智能感知不關(guān)心構(gòu)建順序,只是單獨編譯項目,這就是為什么你不會得到智能感知錯誤。

方法四

此方法是建議:將庫作為依賴項添加到正在使用它的項目中。

在構(gòu)建解決方案時,我遇到了同樣的錯誤(找不到類型或命名空間)。在它下面我看到一條警告,指出“引用無法解析”并確保“程序集存在于磁盤上”。

我很困惑,因為我的 DLL 非常清楚地位于引用指向的位置。在我嘗試構(gòu)建解決方案之前,VS 似乎沒有突出顯示任何錯誤。

我終于意識到了問題所在(或者至少我懷疑是問題所在),我在同一個解決方案中構(gòu)建庫文件,所以即使它存在于磁盤上,它也在那個位置被重建。

當(dāng)我右鍵單擊該項目并僅構(gòu)建該項目而不是整個解決方案時,我沒有收到錯誤消息。

為了解決這個問題,我將庫作為依賴項添加到正在使用它的項目中。

去做這個:

  • 我在解決方案資源管理器中右鍵單擊我的解決方案并選擇“屬性”
  • 然后在“公共屬性”中我選擇了“項目依賴項”
  • 然后在“項目”下拉菜單中,我選擇了依賴該庫的項目
  • 然后選中“取決于”下找到的庫旁邊的框

這確保首先構(gòu)建庫項目。

這個方法幫助我解決了我遇到的問題,原來我有兩個對依賴項項目的引用,優(yōu)先的那個是 bin 文件夾中以前構(gòu)建的 DLL,我刪除了 DLL 和引用并進行了重建,然后所有內(nèi)容都正確編譯了。

方法五

此方法建議:正確添加dll引用。

有網(wǎng)友說到,他發(fā)現(xiàn) VisualStudio 中的參考有一個三角形和一個感嘆號作為這個圖像,

 

然后,右鍵刪除它,并再次正確添加dll引用,問題就解決了。

方法六

有網(wǎng)友通過如下方法解決了問題。

首先,卸載項目,然后:

1、打開myProject.csproj并更新ToolsVersion="4.0"到ToolsVersion="12.0"(使用的是 vs2017)

2、從以下行中刪除myProject.csproj:

<Import Project="..\packages\EntityFramework.6.4.0\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.0\build\EntityFramework.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />

問題解決了。

方法七

這個答案可能對某人有所幫助。

因為VS更換使用了  VS 2017 .NET Core 2.2 Razor Pages,由于更改名稱,重命名模型,突然間得到了這個錯誤:

錯誤 CS0246 找不到類型或命名空間名稱“UploadFileModel”(是否缺少 using 指令或程序集引用?)

這在我的 .chstml Razor 頁面中用紅色下劃線標(biāo)出。(修復(fù)后不帶下劃線):

@page
@model UploadFileModel

所以,最后,幸運的是,我從別人那里找到了我最初使用的代碼,命名空間不包含 .cshtml 文件名!?。?/p>

這是我用名稱空間中的頁面名稱: 

namespace OESAC.Pages.UploadFile
{
    public class UploadFileModel : PageModel
    {

我的原始代碼所具有的以及我所要做的就是從命名空間 UploadFile 中刪除頁面名稱:

namespace OESAC.Pages
{
    public class UploadFileModel : PageModel
    {

這時,所有的錯誤都消失了??!希望錯誤和解決方案對某人有所幫助,錯誤是對的,沒有名為“UploadFileModel”的命名空間。

方法八

有網(wǎng)友說到他的另一個解決方法:

我在將現(xiàn)有項目從VS2008升級到VS2012時遇到了這個問題。我發(fā)現(xiàn)有兩個項目(我創(chuàng)建的僅有的兩個)針對不同的 .Net 框架(3.5 和 4.0)。我通過確保兩個項目的“目標(biāo)框架”框中都有“.NET Framework 4”,在項目的“應(yīng)用程序”選項卡上解決了這個問題。

總結(jié)

由于asp.net“找不到類型或命名空間名稱”錯誤非常常見,本文匯集了該錯誤的8種可能解決方法,希望對讀者有所幫助。

除了上述8個可能的解決方法外,有網(wǎng)友發(fā)現(xiàn),asp.net字母大小寫不對引發(fā)“找不到類型或命名空間名稱”錯誤,這有點讓人哭笑不得。

相關(guān)文章

標(biāo)簽: CSharp  asp.net  命名空間  
x