Asp.net core 在.NET Core MVC自动迁移后,类库在VS2017中丢失了intellisense

Asp.net core 在.NET Core MVC自动迁移后,类库在VS2017中丢失了intellisense,asp.net-core,asp.net-core-mvc,intellisense,class-library,visual-studio-2017,Asp.net Core,Asp.net Core Mvc,Intellisense,Class Library,Visual Studio 2017,在将带有两个项目(web app和类库)的VS2015 MVC核心应用程序迁移到VS2017后,我在类库中的所有视图上都失去了intellisense。几乎每个视图中的所有内容都被破坏了,所以我确信这是迁移工具没有为我解决的一些基本问题。甚至每个razor视图中的@model指令都是错误的 csproj如下所示: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>

在将带有两个项目(web app和类库)的VS2015 MVC核心应用程序迁移到VS2017后,我在类库中的所有视图上都失去了intellisense。几乎每个视图中的所有内容都被破坏了,所以我确信这是迁移工具没有为我解决的一些基本问题。甚至每个razor视图中的
@model
指令都是错误的

csproj
如下所示:

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

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <AssemblyName>Library</AssemblyName>
    <PackageId>Library</PackageId>
    <PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
    <RuntimeFrameworkVersion>1.1.1</RuntimeFrameworkVersion>
    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
    <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
    <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
    <GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
    <GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
    <GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
  </PropertyGroup>

  <ItemGroup>
    <EmbeddedResource Include="Views\**" Exclude="bin\**;obj\**;**\*.xproj;packages\**;@(EmbeddedResource)" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
    <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="1.1.0" />
  </ItemGroup>

</Project>

netcoreapp1.1
图书馆
图书馆
$(PackageTargetFallback);dnxcore50
1.1.1
假的
假的
假的
假的
假的
假的
假的
假的

我尝试将
web.config
从web应用程序复制到类库的根目录,但没有任何帮助。

看起来您遇到了以下错误:

下面是老答案


对于VS 2017的RTM版本,您需要安装以恢复您的Razor intellisense


不幸的是,该组件错过了内部发货日期,因此没有成为VS 2017实际版本的一部分。

解决此问题需要两件事,一是更改项目SDK(
),二是添加元素以将输出类型设置为库(
)。关于这件事的全部信息我交叉发布了

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

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <OutputType>Library</OutputType>
    <AssemblyName>Library</AssemblyName>
    <PackageId>Library</PackageId>
    <PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
    <RuntimeFrameworkVersion>1.1.1</RuntimeFrameworkVersion>
    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
    <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
    <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
    <GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
    <GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
    <GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
  </PropertyGroup>

  <ItemGroup>
    <EmbeddedResource Include="Views\**" Exclude="bin\**;obj\**;**\*.xproj;packages\**;@(EmbeddedResource)" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
    <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="1.1.0" />
  </ItemGroup>

</Project>

netcoreapp1.1
图书馆
图书馆
图书馆
$(PackageTargetFallback);dnxcore50
1.1.1
假的
假的
假的
假的
假的
假的
假的
假的

转到“工具”>“扩展和更新”卸载Razor语言服务

根据指示重新启动Visual Studio

重新安装Razor语言服务


您将看到razor intellisense再次工作,例如asp-*标记帮助程序…

谢谢您的回答。我已经安装了该扩展(只是通过尝试重新安装进行了双重检查-它报告它已经安装在所有兼容的产品上)。据我所知,您链接的扩展仅用于标记助手intellisense。我在所有方面都失去了理智,只是在类库里。是的,这是我的问题。一旦我们得到一个合理的答案,我会自己回答这个问题。目前,建议的修复实际上破坏了构建过程,因此没有智能感知是两个弊病中较小的一个!