【问题标题】:Tag Helper Intellisense not working after upgrading from ASP.NET Core 1.0 to 1.1从 ASP.NET Core 1.0 升级到 1.1 后,Tag Helper Intellisense 不起作用
【发布时间】:2016-11-27 02:07:36
【问题描述】:

ASP.NET Core 1.0 to 1.1 升级后。但是Tag Helper Intellisense 不起作用。可能缺少什么?:

project.json

{
  "userSecretsId": "aspnet-ABCTest-6af8ade3-87ff-4468-a9ce-8bb69c696ab8",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.1.0",
      "type": "platform"
    },
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
    "Microsoft.AspNetCore.Mvc": "1.1.0",
    "Microsoft.AspNetCore.Mvc.Core": "1.1.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0",
    "Microsoft.AspNetCore.Authentication.Cookies": "1.1.0",
    "Microsoft.AspNetCore.Diagnostics": "1.1.0",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.1.0",
    "Microsoft.AspNetCore.Identity": "1.1.0",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0",
    "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
    "Microsoft.AspNetCore.StaticFiles": "1.1.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.1.0",
    "Microsoft.Extensions.Logging": "1.1.0",
    "Microsoft.Extensions.Logging.Console": "1.1.0",
    "Microsoft.Extensions.Logging.Debug": "1.1.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.1.0",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.1.0-preview4-final",
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": "1.1.0-preview4-final"  },

  "tools": {
    "BundlerMinifier.Core": "2.0.238"
  },

  "frameworks": {
    "netcoreapp1.1": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "Areas/**/Views",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

更新

_ViewImports.cshtml:

@using myProj
@using myProj.Models
@using myProj.Models.AccountViewModels
@using myProj.Models.ManageViewModels
@using myProj.AspNetCore.Identity
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

构建工作正常。标签助手也可以工作,但我必须对属性进行硬编码,例如asp-controllerasp-actionasp-forasp-items 等。在我迁移到 ASP.NET Core 1.1 之前它就可以工作

在 Eric Anderson 的文章 here 的包装部分之前还有一个关于智能感知相关问题的注释。不确定这是否与此处相关。

【问题讨论】:

  • 构建时是否收到任何错误/警告?
  • @DavidG 不,构建工作正常。标签助手也可以工作,但我必须对 asp-controller、asp-action、asp-for、asp-items 等属性进行硬编码。我在帖子中添加了一个更新部分以提供更多信息。在我迁移到 ASP.NET Core 1.1 之前它就可以工作了。我可能遗漏了什么。
  • vs2015 中的同样问题
  • 你解决了吗?这里也一样
  • @snekkke 问题依旧。

标签: visual-studio-2015 asp.net-core


【解决方案1】:

这就是我必须配置我的 project.json 以获取标记助手智能感知的方式: 请注意注释掉的行 - 与未注释的等效行:

    "dependencies": {
    "Microsoft.AspNetCore.Diagnostics": "1.1.0",
    "Microsoft.AspNetCore.Mvc": "1.1.0",
    "Microsoft.AspNetCore.Mvc.Core": "1.1.0",
    "Microsoft.AspNetCore.Mvc.TagHelpers": "1.1.0",
    "Microsoft.AspNetCore.Razor": "1.1.0",
    "Microsoft.AspNetCore.Razor.Design": "1.0.0-preview3-final",
    //"Microsoft.AspNetCore.Razor.Design": "1.1.0-preview4-final",
    "Microsoft.AspNetCore.Razor.Runtime": "1.1.0",
    "Microsoft.AspNetCore.Razor.Tools": {
        "version": "1.0.0-preview2-final",
        //"version": "1.1.0-preview4-final",
        "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
    "Microsoft.AspNetCore.Session": "1.1.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Microsoft.Extensions.Logging.Console": "1.1.0"
},

"tools": {
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final"
    //"Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final"
},

因此,基本上,*Razor.Design 和 *Razor.Tools 都必须保持在 1.0.0-preview3-final。

还请注意,正如@Alex 所说,您还需要在“工具”中指定 *.Razor.Tools 。 我希望这有帮助。这肯定很糟糕。

Ninja 编辑:不要忘记构建您的项目,因为智能感知在您完成之前不会工作。可能也必须关闭并重新打开文件。

【讨论】:

    【解决方案2】:

    Microsoft.AspNetCore.Razor.Tools 的问题。

    您在依赖项中拥有它,但您还需要将其添加到工具中:

     "tools": {
        "BundlerMinifier.Core": "2.0.238",
        "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final"
      },
    

    【讨论】:

    • 已经试过了,还是不行。你能告诉我你在 global.json 中使用的是什么 SDK 吗?
    • “版本”:“1.0.0-preview2-003131”
    • 又重复了一次,现在在VS2015中创建项目,它是1.0.1,通过更新所有nugets将其转换为1.1.0,标记助手intellisense消失了,因为从工具中删除了剃须刀,我添加了它回来,它又开始工作了。
    • 但我认为您应该像@Jason_Smith 所说的那样更改为 1.1.0-preview3-final,它不能完全与 1.1.0-preview-final (Razor Tools) 一起使用。
    • @Alex Alex 的建议对我有用。 注意其他读者:对于其他一些读者,本文中其他用户建议的解决方案可能也适用,具体取决于他们的个人情况。
    【解决方案3】:

    请注意,在我安装 Razor 语言服务之前,上述方法无法解决我的问题。现在一切正常。

    https://marketplace.visualstudio.com/items?itemName=ms-madsk.RazorLanguageServices

    不确定这是否仍然是必需的,但我还安装了剃须刀工具。 它于 2017 年 5 月 1 日安装了 Preview4-final。

    安装包 Microsoft.AspNetCore.Razor.Tools –Pre

    【讨论】:

      【解决方案4】:

      就我而言,我的目标是net46,然后当我更改为net461 时,它又可以工作了。我也将版本和导入添加到包部分。

      "tools": {
        "Microsoft.AspNetCore.Razor.Tools": {
        "version": "1.1.0-preview4-final",
        "imports": ["portable-net45+win8"]
      },
      

      【讨论】:

        猜你喜欢
        • 2017-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-17
        • 2018-08-03
        • 2019-05-12
        • 2017-11-17
        • 1970-01-01
        相关资源
        最近更新 更多