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

时间:2015-10-21 10:26:30

标签: c# asp.net-mvc-5 visual-studio-2015 .net-4.5

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

  

错误CS0246类型或命名空间名称'系统'找不到(你错过了使用指令或程序集引用吗?)   严重性代码描述项目文件行

     

错误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" />

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

System.dll参考:

enter image description here

enter image description here

解决方案:

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

17 个答案:

答案 0 :(得分:35)

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

通过清理解决方案并重建它来解决它。

希望这有帮助。

答案 1 :(得分:14)

清洁液对我有用。

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

答案 2 :(得分:6)

请按照以下步骤操作:

  1. 右键点击解决方案&gt;恢复NuGet包
  2. 右键点击解决方案&gt;清洁解决方案
  3. 右键点击解决方案&gt;构建解决方案
  4. 关闭Visual Studio并重新打开。
  5. 多数人。

答案 3 :(得分:4)

卸载项目->重新加载项目通常可以解决这个奇怪的,与Nuget有关的错误。

答案 4 :(得分:4)

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

一旦重新安装NuGet Package Manager(并关闭,然后重新打开VS 2015),我就能够获得成功的构建。

参考/信用

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

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

答案 5 :(得分:3)

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

如果您的解决方案引用了其他项目,那么您可能必须在几个项目中这样做

答案 6 :(得分:1)

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

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

答案 7 :(得分:1)

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

答案 8 :(得分:1)

对我来说,这只发生在一个项目中,我尝试了所有在网上找到的内容,似乎无济于事。 将项目属性弄乱后,我准备删除并重新创建项目。将.NET Framework目标从4.7.2更改为4.8可以解决此问题。后来我将其更改回4.7.2,错误消失了。

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

答案 9 :(得分:0)

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

答案 10 :(得分:0)

我必须从visual studio 2017升级到2019。在这里,没有其他提议的解决方案对我有帮助,我安装并配置了这里的每个设备,并重新启动了ms网站上的许多其他选项。

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

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

答案 13 :(得分:0)

我已经尝试了以上所有答案。对我而言,只能进行以下步骤中所述的删除并再次添加引用

  1. 在项目下打开“参考”。
  2. 右键单击“系统”参考。
  3. 点击“删除”。
  4. 右键单击“参考”。
  5. 点击“添加参考...”。
  6. 从右侧菜单中选择一个“程序集”,
  7. 在搜索字段中输入“系统”。
  8. 从列表中选择“系统”。
  9. 点击“添加”按钮。
  10. 重要提示:重新启动Visual Studio。

答案 14 :(得分:0)

尝试

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

答案 15 :(得分:-1)

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

打开包管理器控制台并输入&#34; dotnet restore&#34;。

答案 16 :(得分:-2)

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