技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

汇集asp.net“找不到类型或命名空间名称”错误的8种解决方法

作者:admin    时间:2023-4-27 21:36:1    浏览:

asp.net出现“找不到类型或命名空间名称”错误,是每个.NET开发人员常常遇到的问题,本文汇集了一些可能的解决方法。

方法一

这可能是两个项目之间 .Net 框架版本不兼容的结果。

它可以通过两种方式发生:

  1. 引用完整框架项目的客户资料项目
  2. 针对较新框架版本的较旧框架版本

例如,当应用程序设置为以 .Net 4 Client Profile 框架为目标时,它会发生,并且它引用的项目以完整的 .Net 4 框架为目标。

所以为了更清楚:

  • 项目 A 以客户资料框架为目标
  • 项目 A 引用项目 B
  • 项目B针对完整框架

这种情况下的解决方案是升级应用程序的框架目标(项目 A),或者降级引用程序集的目标(项目 B)。完整的框架应用程序可以引用/使用客户端配置文件框架程序集,但反之则不行(客户端配置文件不能引用完整的框架目标程序集)。

请注意,当你在 VS2012 或 VS2013(使用 .Net 4.5 作为默认框架)中创建新项目并且:

  • 引用项目使用.Net 4.0(例如从 VS2010 迁移到 VS2012 或 VS2013 然后添加新项目时很常见)
  • 引用的项目使用更高版本,即 4.5.1 或 4.5.3(当将现有项目重新定位到最新版本,但 VS 仍然创建针对 v4.5 的新项目)

这个方法对很多人有用,一网友说到:

这对我有所帮助,我最近将解决方案从VS2010移到了VS2012,并在VS2012中创建了一个新的类库。突然间我收到了这个错误,当然这是因为新的类库以 .NET 4.5 为目标,而引用它的项目以 .NET 4.0 为目标。将新库降级到目标 4.0 修复了它。

方法二

重新安装 nuget 包对我有用,在我将 .NET Framework 版本更改为与所有项目同步后,一些 nuget 包(尤其是 Entity Framework)仍然为以前的版本安装。用“包管理器控制台”的下面命令为整个解决方案重新安装包:

Update-Package –reinstall

方法三

有网友说到,删除了 VS2015 报错中它找不到的项目引用,然后再次添加它。解决了问题。试过清洁、构建和重新启动 VS 都无济于事。

这方法得到很多人的支持,认为这是值得强烈推荐的技巧。

每当在 VS 解决方案中发现任何引用问题时,强烈推荐此技巧。在我添加了一个针对更高版本的 .NET 框架的新项目后,它解决了我在 VS2017 中的问题。我敢打赌清除了一些缓存。

编译器根据项目构建顺序进行编译,因此如果一个项目中存在真正的错误,它可能会迷失在“找不到类型或名称空间”错误的海洋中——因为它在找到错误,并且无法更新引用。如果没有列出太多错误,你应该能够找到真正的错误。不幸的是,我有 100 个,所以这个技巧真的帮了我。我想智能感知不关心构建顺序,只是单独编译项目,这就是为什么你不会得到智能感知错误。

方法四

此方法是建议:将库作为依赖项添加到正在使用它的项目中。

在构建解决方案时,我遇到了同样的错误(找不到类型或命名空间)。在它下面我看到一条警告,指出“引用无法解析”并确保“程序集存在于磁盘上”。

我很困惑,因为我的 DLL 非常清楚地位于引用指向的位置。在我尝试构建解决方案之前,VS 似乎没有突出显示任何错误。

我终于意识到了问题所在(或者至少我怀疑是问题所在),我在同一个解决方案中构建库文件,所以即使它存在于磁盘上,它也在那个位置被重建。

当我右键单击该项目并仅构建该项目而不是整个解决方案时,我没有收到错误消息。

为了解决这个问题,我将库作为依赖项添加到正在使用它的项目中。

去做这个:

  • 我在解决方案资源管理器中右键单击我的解决方案并选择“属性”
  • 然后在“公共属性”中我选择了“项目依赖项”
  • 然后在“项目”下拉菜单中,我选择了依赖该库的项目
  • 然后选中“取决于”下找到的库旁边的框

这确保首先构建库项目。

这个方法帮助我解决了我遇到的问题,原来我有两个对依赖项项目的引用,优先的那个是 bin 文件夹中以前构建的 DLL,我删除了 DLL 和引用并进行了重建,然后所有内容都正确编译了。

方法五

此方法建议:正确添加dll引用。

有网友说到,他发现 VisualStudio 中的参考有一个三角形和一个感叹号作为这个图像,

 

然后,右键删除它,并再次正确添加dll引用,问题就解决了。

方法六

有网友通过如下方法解决了问题。

首先,卸载项目,然后:

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 页面中用红色下划线标出。(修复后不带下划线):

@page
@model UploadFileModel

所以,最后,幸运的是,我从别人那里找到了我最初使用的代码,命名空间不包含 .cshtml 文件名!!!

这是我用名称空间中的页面名称: 

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

我的原始代码所具有的以及我所要做的就是从命名空间 UploadFile 中删除页面名称:

namespace OESAC.Pages
{
    public class UploadFileModel : PageModel
    {

这时,所有的错误都消失了!!希望错误和解决方案对某人有所帮助,错误是对的,没有名为“UploadFileModel”的命名空间。

方法八

有网友说到他的另一个解决方法:

我在将现有项目从VS2008升级到VS2012时遇到了这个问题。我发现有两个项目(我创建的仅有的两个)针对不同的 .Net 框架(3.5 和 4.0)。我通过确保两个项目的“目标框架”框中都有“.NET Framework 4”,在项目的“应用程序”选项卡上解决了这个问题。

总结

由于asp.net“找不到类型或命名空间名称”错误非常常见,本文汇集了该错误的8种可能解决方法,希望对读者有所帮助。

除了上述8个可能的解决方法外,有网友发现,asp.net字母大小写不对引发“找不到类型或命名空间名称”错误,这有点让人哭笑不得。

相关文章

标签: CSharp  asp.net  命名空间  
x
  • 站长推荐
/* 左侧显示文章内容目录 */