C# Razor中有多个错误--缺少Include?--Visual Studio for Mac-C/MVC/Entity框架

C# Razor中有多个错误--缺少Include?--Visual Studio for Mac-C/MVC/Entity框架,c#,asp.net-mvc,macos,visual-studio,razor,C#,Asp.net Mvc,Macos,Visual Studio,Razor,我正在Mac上试用Visual Studio。我有一个_layout.cshtml文件,在Windows版本的VS中可以正常工作,但在Mac上执行它时会出现多个错误 错误是: 缺少一个或多个编译引用。确保您的项目正在引用“Microsoft.NET.Sdk.Web”,并且“PreserveComilationContext”属性未设置为false 而且它还标记了许多常见的剃须刀功能,例如 找不到类型或命名空间名称“HtmlString”是否缺少using指令或程序集引用 私有HtmlString

我正在Mac上试用Visual Studio。我有一个_layout.cshtml文件,在Windows版本的VS中可以正常工作,但在Mac上执行它时会出现多个错误

错误是:

缺少一个或多个编译引用。确保您的项目正在引用“Microsoft.NET.Sdk.Web”,并且“PreserveComilationContext”属性未设置为false

而且它还标记了许多常见的剃须刀功能,例如

找不到类型或命名空间名称“HtmlString”是否缺少using指令或程序集引用

私有HtmlString WriteOptionstring菜单

当前上下文中不存在名称“Styles”

@style.Render~/Content/css

当前上下文中不存在名称“Scripts”

@Scripts.Render~/bundles/modernizer

当前上下文中不存在名称“会话”

int CurrentCustomerId=会话[CurrentCustomerId]==空-1:intSession[CurrentCustomerId]

我试过很多方法,比如

添加和删除Microsoft.AspNetCore 确保将PreserveCompirationContext设置为true 添加Microsoft.AspNetCoreRazor包 添加:@正在使用HttpContext.Current; 添加:@using System.Web.Optimization

重新启动、清理和重建

这就是我的.csproj文件的外观:

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

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <PreserveCompilationContext>true</PreserveCompilationContext>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
    <PackageReference Include="jQuery" Version="3.3.1" />
    <PackageReference Include="bootstrap" Version="4.0.0" />
    <PackageReference Include="log4net" Version="2.0.8" />
    <PackageReference Include="FontAwesome" Version="4.7.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="2.0.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Design" Version="1.1.5" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.0.1" />
    <PackageReference Include="EntityFramework" Version="6.2.0" />
    <PackageReference Include="Microsoft.AspNetCore" Version="2.0.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.2" />
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.5" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor" Version="2.0.2" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.0.2" />
    <PackageReference Include="Microsoft.AspNet.Razor" Version="3.2.3" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Data\" />
    <Folder Include="Views\Customer\" />
    <Folder Include="Views\Contact\" />
    <Folder Include="Views\User\" />
    <Folder Include="wwwroot\img\" />
    <Folder Include="Helpers\" />
  </ItemGroup>
  <ItemGroup>
    <Compile Remove="Views\Customer\Index.cshtml.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Remove="Views\Home\About.cshtml" />
    <Content Remove="Views\Home\Contact.cshtml" />
    <Content Remove="wwwroot\images\banner1.svg" />
    <Content Remove="wwwroot\images\banner2.svg" />
    <Content Remove="wwwroot\images\banner3.svg" />
    <Content Remove="wwwroot\images\banner4.svg" />
  </ItemGroup>
</Project>

有什么建议吗?

ASP.NET Web应用程序和ASP.NET核心Web应用程序之间存在差异。您的项目属于第一种类型,它使用.Net Framework,在Mac上不工作。Core类型使用.Net Core,在Mac上受支持

项目类型有一些不同,比如缺少@style和@Scripts。更多差异可在此处找到:


如果您想迁移项目,可以使用以下指南:

,现在就可以了。谢谢你的链接。我注意到添加了Core,应该对此进行更多的调查,并对向后兼容性做出了错误的假设。谢谢你的信息-非常感谢!
Visual Studio Community 2017 for Mac
Version 7.3.3 (build 12)
Installation UUID: 0237be3a-3db7-4f5c-af82-a9699df5a1f9
Runtime:
    Mono 5.8.0.108 (2017-10/9aa78573ee2) (64-bit)
    GTK+ 2.24.23 (Raleigh theme)

    Package version: 508000108

NuGet
Version: 4.3.1.4445

.NET Core
Runtime: /usr/local/share/dotnet/dotnet
Runtime Version: 2.0.5
SDK: /usr/local/share/dotnet/sdk/2.1.4/Sdks
SDK Version: 2.1.4
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/5.8.0/lib/mono/msbuild/15.0/bin/Sdks