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

贊助商

分類目錄

贊助商

最新文章

搜索

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

作者:admin    時(shí)間:2023-4-27 21:36:1    瀏覽:

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

方法一

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

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

  1. 引用完整框架項(xiàng)目的客戶資料項(xiàng)目
  2. 針對(duì)較新框架版本的較舊框架版本

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

所以為了更清楚:

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

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

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

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

這個(gè)方法對(duì)很多人有用,一網(wǎng)友說(shuō)到:

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

方法二

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

Update-Package –reinstall

方法三

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

這方法得到很多人的支持,認(rèn)為這是值得強(qiáng)烈推薦的技巧。

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

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

方法四

此方法是建議:將庫(kù)作為依賴項(xiàng)添加到正在使用它的項(xiàng)目中。

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

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

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

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

為了解決這個(gè)問(wèn)題,我將庫(kù)作為依賴項(xiàng)添加到正在使用它的項(xiàng)目中。

去做這個(gè):

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

這確保首先構(gòu)建庫(kù)項(xiàng)目。

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

方法五

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

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

 

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

方法六

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

首先,卸載項(xiàng)目,然后:

1、打開(kāi)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')" />

問(wèn)題解決了。

方法七

這個(gè)答案可能對(duì)某人有所幫助。

因?yàn)閂S更換使用了  VS 2017 .NET Core 2.2 Razor Pages,由于更改名稱,重命名模型,突然間得到了這個(gè)錯(cuò)誤:

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

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

@page
@model UploadFileModel

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

這是我用名稱空間中的頁(yè)面名稱: 

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

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

namespace OESAC.Pages
{
    public class UploadFileModel : PageModel
    {

這時(shí),所有的錯(cuò)誤都消失了??!希望錯(cuò)誤和解決方案對(duì)某人有所幫助,錯(cuò)誤是對(duì)的,沒(méi)有名為“UploadFileModel”的命名空間。

方法八

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

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

總結(jié)

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

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

相關(guān)文章

標(biāo)簽: CSharp  asp.net  命名空間  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */