问题 未定义或导入预定义类型System.Object


我只在VS 2015中的.cshtml文件中遇到这个奇怪的错误。 使用VS 2013打开项目时,错误不会显示。

错误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”


3425
2017-10-19 13:01


起源

为什么投票失败? - Hélder Gonçalves
所有.cshtml文件? - Keith Beller
如果您在VS 2013中创建一个新项目并尝试在VS 2015中打开它,您会看到相同的错误吗? - Keith Beller
我有很多错误(~4000)与上面的错误类似。我加了之后 <Reference Include="mscorlib" /> 在csproj中,所有错误都消失了 - Alexandru Irimiea


答案:


我在VS 2015中遇到了很多关于MVC 4的CSHTML Intellisense问题,并且只选择升级到MVC 5.然而,根据以下内容,MVC 4应该仍然有效,但并不完美。 Visual Studio 2015是否支持较旧版本的MVC?


4
2017-10-26 14:20





这是VS 2013和VS 2015中的问题。构建输出 必须 被设置为 默认构建路径 为了让Razor intellisense在.cshtml文件中工作。请参阅此优秀文章,重现问题并讨论替代方案。 http://www.dennisonpro.info/managing-intellisense-in-razor-views-with-mvc-5-using-custom-builds-in-visual-studio-2013/

因此必须将构建路径设置为 bin\ 对于MVC项目。如果您需要输出其他内容,则必须创建一个复制文件的构建后步骤 bin\ 到另一个地方。


10
2017-07-24 16:09



谢谢,这解决了我的问题。我有一个网站需要与另一个合并,所以我重定向了bin路径。 - Sebazzz


管理问题..我将构建路径设置为“c:... \ bin”而不是“\ bin”。我相信这是因为我在项目的根目录中没有任何web.config,因此VS没有将我的项目识别为Web项目。在我更改了构建根并重新加载项目之后,错误消失了,并且出现了intellisense。


0
2017-10-28 16:54





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

看起来像那些由旧版Visual Studio生成的旧文件,这些文件与新版本的visual studio不兼容。


0
2018-05-31 15:11





在项目引用中添加对System程序集的引用:

右键单击引用 - >添加引用 - >程序集 - >框架 - >系统


-5
2017-10-19 13:50



那个参考已经存在了。编辑问题。 - Hélder Gonçalves
System.Object甚至不在系统程序集中 - 它位于mscorlib中。 - Jon Skeet
对不起,我没跟着你。谁提到过System.Object? - AleFranz