班级库在.NET核心MVC自动迁移后的VS2017中丢失了Intellisense



在将两个项目(Web应用程序和类库)的VS2015 MVC Core应用程序迁移后,我在类库中的所有视图上都失去了Intellisense。每个视图中的几乎所有内容都被打破了,所以我敢肯定,迁移工具没有照顾我是相当基本的。甚至每个剃须刀视图中的@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>

我尝试将web.config从Web应用程序复制到类库的根,但这无济于事。

看起来您已经点击了此错误:

https://github.com/aspnet/mvc/issues/5975

下面的旧答案


使用VS 2017的RTM版本,您需要安装剃须刀语言服务扩展名才能恢复剃须刀。

不幸的是,该组件错过了内部船舶日期,因此并未成为实际VS 2017版本的一部分。

通过转到"工具">"扩展和更新"来卸载剃须刀语言服务。

根据指示重新启动视觉工作室...

重新安装剃须刀语言服务。

您会看到剃须刀IntelliSense再次工作,例如ASP-*标签助手...

解决此问题需要两件事,对项目SDK(<Project Sdk="Microsoft.NET.Sdk.Web">)的更改并添加一个元素将输出类型设置为库(<OutputType>Library</OutputType>)。关于我交叉的此GitHub问题的完整信息。

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

最新更新