找不到类型或命名空间名称 'System'

The type or namespace name 'System' could not be found

在 Visual Studio 2015 Professional 中打开我的项目时,我的所有视图 (*.cshtml) 中都出现以下(以及更多)错误。

Error CS0246 The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?) Severity Code Description Project File Line

Error CS0518 Predefined type 'System.Object' is not defined or imported Severity Code Description Project File Line

Error CS0518 Predefined type 'System.String' is not defined or imported

我得到了这些参考文献:

<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Sitecore.Kernel, Version=7.0.0.0, Culture=neutral, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>N:\XXX\Sitecore.Kernel.dll</HintPath>
</Reference>
<Reference Include="Sitecore.Mvc">
  <HintPath>N:\XXX\Sitecore.Mvc.dll</HintPath>
</Reference>
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>N:\XXX\System.Web.Helpers.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>N:\XXX\System.Web.Mvc.dll</HintPath>
</Reference>
<Reference Include="System.Web.Providers">
  <HintPath>N:\XXX\System.Web.Providers.dll</HintPath>
</Reference>
<Reference Include="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>N:\XXX\System.Web.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>N:\XXX\System.Web.WebPages.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages.Deployment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>N:\XXX\System.Web.WebPages.Deployment.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>N:\XXX\System.Web.WebPages.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />

我发现一些解决方案说没有引用 mscorlib.. 但是当我尝试添加它时它说它已经存在(即使我没有在 csproj 文件中看到它)。

System.dll参考:

解决方案:

解决了问题。我将构建路径设置为 "c:...\bin" 而不是“\bin”。我相信这是因为我在项目的根目录中没有任何 web.config,所以 VS 没有将我的项目识别为 Web 项目。

我尝试重新创建您的问题,但在 visual studio 2013 年创建解决方案时遇到了类似的错误,然后尝试在 vs 2015 中构建它。

重新安装 NuGet 包管理器(然后关闭,然后重新打开 VS 2015)后,我能够成功构建。

参考文献/学分

有几个 SO 问题与通过 VS 2015 早期版本的 NPM 构建问题有关(即我只是传递我已经尝试和解决的问题)。经常性的解决方案通常是更新/重新安装 NPM 或更改 power shell 的执行策略。我倾向于喜欢更新 + 重新启动的方法,以避免修改 windows 中的黑框。一个来源: MSBuild 集成解决方案也可能存在问题,在这种情况下,从解决方案中迁移出 NuGet 资源可以解决问题。

来源:

我之前尝试从 Internet 编辑一个开源项目时遇到了同样的问题。

只需清理解决方案并重建即可解决。

按照以下步骤操作:

  1. 右键单击“解决方案”>“还原 NuGet 程序包”
  2. 右键单击“解决方案”>“清理解决方案”
  3. 右键单击“解决方案”>“生成解决方案”
  4. 关闭 Visual Studio 并重新打开。
  5. 重建解决方案。如果这些步骤最初没有解决您的问题,请尝试再次重复这些步骤。

就是这些。

清洁液对我有用。

我还建议关闭并重新启动Visual Studio。

如果清理解决方案不起作用,对于看到这个问题并尝试移动项目或重命名的任何人。

打开包管理器控制台并输入 "dotnet restore"。

右键单击您的项目名称,然后打开属性 windows。 降级目标框架版本,构建解决方案 然后将您的 Target 框架版本升级到最新版本,构建解决方案。

对于像我一样来到这里的人,因为他们试图在控制台应用程序中托管 aspnet.core mvc: 我能够解决这个问题的唯一方法是将 .csproj 转换为新格式并将 Sdk 属性 添加到 Project 标记在第一行。

<Project Sdk="Microsoft.NET.Sdk.Razor">

我不得不从 visual studio 2017 升级到 2019。这里没有其他建议的解决方案帮助我,我安装和配置,重新启动这里的每个人以及来自 ms 站点的许多其他选项。

我的根本原因可能是 git 存储库开发人员使用了 2019,我试图将原始 git 存储库克隆到 ma 2017。

卸载项目 -> 重新加载项目通常会修复这个奇怪的、与 Nuget 相关的错误。

您可以查看创建和开发系统的框架,然后将您当前解决方案的框架更改为旧框架。您可以通过右键单击解决方案然后选择属性来执行此操作。在应用程序部分,您可以更改框架。

打开项目参考,我在各种包上有很多黄色警告三角形。 单击添加引用,只是这样做似乎让 VS 刷新它的引用,黄色三角形消失,代码中的错误也消失了。

如果您的解决方案引用了其他项目,您可能必须在一些项目中执行此操作

检查目标框架。将目标框架从 .NET 框架 4.6.1 更改为 .NET 框架 4.6 对我有用。

为了解决这个问题,我不得不从每个文件夹中删除 bin 和 obj 文件夹。

以上所有答案我都试过了。对我来说,仅 删除并再次添加引用 如下所述:

  1. 在项目下打开'References'。
  2. 右键单击 'System' 参考。
  3. 单击 'Remove'。
  4. 右键单击 'References'。
  5. 点击'Add Reference...'。
  6. 从右侧菜单中选择 'Assemblies'、
  7. 在搜索字段中键入 'System'。
  8. 从列表中选择 'System'。
  9. 单击 'Add' 按钮。
  10. 重要提示:重新启动 Visual Studio。

尝试

  1. 清洁解决方案
  2. 重建解决方案

对我来说,它只发生在一个项目中,我尝试了我在网上找到的所有东西,但似乎没有任何帮助。 在弄乱项目属性后,我准备删除并重新创建项目,将 .NET Framework 目标从 4.7.2 更改为 4.8 解决了这个问题。后来又改回4.7.2,错误没有了。

希望这对其他用户也有帮助。

使用 VS Professional 2019,我试图 运行 从 Udemy class 下载的关于 selenium 自动化测试的解决方案,大多数项目在项目参考部分中都有错误。我尝试清理、重建、关闭 VS。然后,在 VS 中,当我右键单击解决方案资源管理器中的解决方案并选择管理解决方案的 Nuget 包时,有 2 个可用更新:MSTest.TestAdapter 和 MSTest.TestFramework,当我安装这些更新时,出现错误所有项目的参考消息都消失了,对这些项目的参考,以及对系统和 System.Core.

的参考

我在尝试提取部分解决方案以将其设置为独立解决方案时遇到此消息。

我发现我的 .csproj 文件中的所有 <HintPath> 引用现在都指向错误的位置。就我而言,它们最初是:

<Reference Include="System.IO.FileSystem.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <HintPath>..\..\packages\System.IO.FileSystem.Primitives.4.0.1\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath> 
</Reference>

为了解决编译问题,只需将它们修复为:

<Reference Include="System.IO.FileSystem.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <HintPath>..\packages\System.IO.FileSystem.Primitives.4.0.1\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
</Reference>

如果这对某人有帮助,就我而言,项目的前任所有者未能忽略源代码管理中的包目录,但忽略了构建路径,因此虽然包不完整。

要修复,我必须

  1. 构建解决方案以查看缺少的包。
  2. 从硬盘中删除包。
  3. 运行 来自 NuGet 控制台的 update-package -reinstall -ignoredependencies。

我的问题是因为几个项目被2个单独的vs2019解决方案使用和编译造成的。 一旦我合并了解决方案并删除了 obj 和 bin 文件夹并重新编译 - 问题就解决了

我了解到有趣的事情,关于 Visual studio 中的 nuget 引用 对于 nuget 引用,我们可以通过引用或通过 package.config 文件添加 As。

在 Visual Studio 2017 年 - 字母顺序或 nuget 引用由 VS 自动处理。

但在 Visual Studio 2019 年。如果您的 nuget 引用不是按字母顺序排列的,那么 VS 不会在引用文件夹中加载文件。

所以为了尝试修复。 --删除所有的所有引用 .csproj/vbproj 或 package.config.

-- 保存在记事本中。尝试通过 Nuget 包管理器添加它们。

-- 第一次尝试1。安装后。

-- 右击解决方案 -> 恢复所有 nuget 包。

-- 您现在会看到它加载了一个 nuget 引用。

-- 现在一个一个做。

-- 如果您 100% 确定您的参考文献顺序是按字母顺序排列的 命令。只需将它们全部粘贴到 .csproj/vbproj 或 package.config.

-- 恢复解决方案上的所有 nuget。

您会看到所有符号都将被加载。 -- 还有一件事通过解决方案资源管理器中的顶部图标刷新您的参考文件夹。

引用愉快。

当项目中包含的一些 img 文件在文件系统中被删除时,我遇到了同样的问题。但未从 asp.net 项目中删除(由于 git stash\checkout)。在文件被手动从项目中排除后,构建就可以了。这与旧版 ASP.NET 4.6 Web 项目和 VS 2019 有关。

我在从 git 克隆的项目中遇到了同样的错误。解决我的问题的是切换目标框架。您可以通过转到“项目”>“属性”>“更改目标框架”并将其改回原来的状态来执行此操作。