2017-04-18 108 views
0

我有一个包含自定义标签助手的核心类库。我想在核心Web应用程序中添加这个参考。引用ASP.NET核心类库

我右键单击Visual Studio中的项目,选择添加引用并浏览到该文件夹​​并选择该dll。

但是,当我尝试使用@addTagHelper我得到:

Cannot resolve TagHelper containing assembly 'LC_PUBLIC_CORE'. Error: Could not load file or assembly 'LC_PUBLIC_CORE, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

我的代码:

LC_Public(类库)

namespace LC_PUBLIC_CORE.TagHelpers 
{ 
    [HtmlTargetElement("LC_meta")] 
    public class MetaTagHelper : TagHelper 
    { 
     private IHostingEnvironment _env; 

     [HtmlAttributeName("filename")] 
     public string Filename { get; set; } = "default.txt"; 

     public MetaTagHelper(IHostingEnvironment env) 
     { 
      _env = env; 
     } 

     public override void Process(TagHelperContext context, TagHelperOutput output) 
     { 
      output.Content.SetContent(System.IO.File.ReadAllText(System.IO.Path.Combine(_env.WebRootPath, "META", this.Filename))); 
     } 
    } 
} 

ASP_NET_CORE_Standard(Web应用程序) - _ViewImports.cshtml

@using ASP_NET_CORE_Standard 
@using LC_PUBLIC_CORE 
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 
@addTagHelper *, LC_PUBLIC_CORE 

是否需要添加其他代码?

+0

你最后@addTagHelper线使用比第二最后一个不同的(和过时)格式。此外,通配符也完全不同。 @addTagHelper的第一个参数用于标签助手类名(全是'*'),第二个是标签助手所在的名称空间 – Tseng

+0

@tseng我已经改变了格式,但仍然是相同的错误。如果我使用LC_PUBLIC_CORE.TagHelpers,则得到“**无法解析包含程序集的TagHelper'LC_PUBLIC_CORE.TagHelpers'**”,在引用上定义Copy Local = true也没有任何作用 – TheRuler

+0

您是否在更改解决方案后重建了解决方案?有些东西没有立即被拾起(即EF核心模型变化和某些剃刀方面,即脚手架) – Tseng

回答

0

我通过创建一个新的解决方案并将两个项目添加到解决方案中来解决问题。然后在ASP_NET_CORE_Standard中添加对LC_PUBLIC_CORE项目的引用。

_ViewImports.cshtml

@using ASP_NET_CORE_Standard 
@using LC_PUBLIC_CORE 
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 
@addTagHelper *, LC_PUBLIC_CORE