【问题标题】:Class library lost intellisense in VS2017 after .NET Core MVC auto-migration.NET Core MVC 自动迁移后,类库在 VS2017 中丢失了智能感知
【发布时间】:2017-08-05 21:38:32
【问题描述】:

将具有两个项目(Web 应用程序和类库)的 VS2015 MVC Core 应用程序迁移到 VS2017 后,我在类库中的所有视图上都失去了智能感知。每个视图中的几乎所有内容都已损坏,因此我确信迁移工具没有为我处理这些相当基本的事情。甚至每个剃刀视图中的@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 应用程序复制到类库的根目录,但这没有帮助。

【问题讨论】:

    标签: asp.net-core asp.net-core-mvc intellisense class-library visual-studio-2017


    【解决方案1】:

    看起来你遇到了这个错误:

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

    下面的旧答案


    使用 VS 2017 的 RTM 版本,您需要安装 Razor Language Service extension 才能取回您的 Razor 智能感知。

    很遗憾,该组件错过了内部发货日期,因此没有将其作为实际 VS 2017 版本的一部分。

    【讨论】:

    • 感谢您的回答。我已经安装了该扩展程序(只是通过尝试重新安装仔细检查 - 它报告它已安装在所有兼容产品上)。据我了解,您链接的扩展仅适用于标签助手智能感知。我在一切上都失去了智能感知,而且只在类库中。
    • 是的,这是我的问题。一旦我们得到合理的答案,我会自己回答这个问题。目前建议的修复实际上破坏了构建过程,因此没有智能感知是两害相权取其轻!
    【解决方案2】:

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

    根据指示重新启动 Visual Studio...

    重新安装 Razor 语言服务。

    您将看到 razor intellisense 再次工作,例如 asp-* 标签助手...

    【讨论】:

      【解决方案3】:

      解决此问题需要做两件事,更改项目 SDK (&lt;Project Sdk="Microsoft.NET.Sdk.Web"&gt;) 并添加一个元素以将输出类型设置为库 (&lt;OutputType&gt;Library&lt;/OutputType&gt;)。我交叉发布了有关此GitHub issue 的完整信息。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-02
        • 2017-10-26
        • 1970-01-01
        • 1970-01-01
        • 2017-01-31
        • 2021-06-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多