预定义类型系统.对象未定义或导入

本文关键字:导入 未定义 对象 类型系统 预定义 | 更新日期: 2023-09-27 18:18:15

我只在VS 2015的。cshtml文件中有这个奇怪的错误。当我用vs2013打开项目时,错误没有显示。

错误CS0246类型或命名空间名称"System"找不到(您是否缺少using指令或汇编引用?)

以下是我的参考资料:

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

这可能是什么原因?

请参考我创建的这个问题。这是同一个问题:类型或命名空间名称'System'

预定义类型系统.对象未定义或导入

这在VS 2013和VS 2015都是一个问题。构建输出必须将设置为默认构建路径,以便Razor智能感知在.cshtml文件中工作。请参阅这篇介绍该问题并讨论替代方案的优秀文章。http://www.dennisonpro.info/managing-intellisense-in-razor-views-with-mvc-5-using-custom-builds-in-visual-studio-2013/

所以构建路径必须设置为bin'的MVC项目。如果需要输出到其他地方,则必须创建一个构建后步骤,将文件从bin'复制到另一个位置。

我在VS 2015的MVC 4中遇到了很多CSHTML智能感知问题,并选择升级到MVC 5。然而,MVC 4应该仍然可以工作,只是不完美,根据:Visual Studio 2015是否支持旧版本的MVC?

在该解决方案的所有项目中删除bin和obj文件夹对我有效。

似乎那些旧文件是由旧版本的visual studio生成的,与新版本的visual studio不兼容。

管理问题…我将构建路径设置为"c:…"'bin"而不是"'bin"。我相信这是因为我没有网。所以VS没有将我的项目识别为web项目。在我更改了构建根并重新加载项目后,错误消失了,并且出现了智能感知。

将引用添加到项目引用中的System程序集:

右键单击参考->添加参考->程序集->框架->系统