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

Hél*_*ves 37 c# .net-4.5 asp.net-mvc-5 visual-studio-2015

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

错误CS0246找不到类型或命名空间名称"System"(您是否缺少using指令或程序集引用?)严重性代码说明项目文件行

错误CS0518未定义或导入预定义类型"System.Object"严重性代码描述项目文件行

错误CS0518未定义或导入预定义类型"System.String"

我得到了这些参考:

<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" />
Run Code Online (Sandbox Code Playgroud)

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

System.dll参考:

在此输入图像描述

在此输入图像描述

解:

管理问题..我将构建路径设置为"c:...\bin"而不是"\ bin".我相信这是因为我在项目的根目录中没有任何web.config,因此VS没有将我的项目识别为Web项目.

Mal*_*lek 42

当我尝试从互联网上编辑一个开源项目时,我遇到了同样的问题.

通过清理解决方案并重建解决方案解决了这个问题.

希望这可以帮助.

  • 你如何“清理”解决方案?右键单击 &gt; 清理 (3认同)
  • 解决方案资源管理器 -&gt; 右键单击​​您的项目 -&gt; 清理 (3认同)
  • 这适用于我遇到此问题的解决方案之一; 但另一个要求VS在清洁后重新启动. (2认同)
  • 哈哈哈,你花了半个小时试图安装.NET标准,而你似乎已经拥有了所有东西.谢谢 (2认同)

小智 17

清洁解决方案适合我.

我还建议一旦关闭并重新启动Visual Studio.

  • 干净的解决方案,重新启动 Visual Studio 并构建解决方案......这有效,谢谢 (3认同)

hub*_*opa 13

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

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

参考/信用

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

来源:https : //stackoverflow.com/a/31811461/1158842


小智 10

跟着这些步骤 :

  1. 右键单击Solution> Restore NuGet包
  2. 右键单击Solution> Clean Solution
  3. 右键单击Solution> Build Solution
  4. 关闭Visual Studio并重新打开.

就这样.

  • 我需要在步骤 3 之前运行步骤 4。 (4认同)

小智 9

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

打开包管理器控制台并键入“dotnet restore”。


D.R*_*ado 9

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

  • 这对我也有用。清理/退出/重新加载/重建没有 (2认同)

小智 6

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


小智 6

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


Pet*_*err 5

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

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