【发布时间】:2017-09-14 05:13:48
【问题描述】:
我有一个包含自定义标签助手的核心类库。我想将此作为参考添加到核心 Web 应用程序中。
我在 Visual Studio 中右键单击项目,选择添加引用并浏览到文件夹并选择 dll。
但是当我尝试使用 @addTagHelper 我得到:
无法解析包含程序集“LC_PUBLIC_CORE”的 TagHelper。错误:无法加载文件或程序集“LC_PUBLIC_CORE,Culture=neutral,PublicKeyToken=null”。系统找不到指定的文件。
我的代码:
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
我需要添加任何额外的代码吗?
【问题讨论】:
-
您的最后一行 @addTagHelper 使用的格式与倒数第二行不同(且已过时)。通配符的使用也完全不同。 @addTagHelper的第一个参数是标签助手类名(
*为所有),第二个参数是标签助手所在的命名空间 -
@tseng 我已经更改了格式,但仍然是同样的错误。如果我使用 LC_PUBLIC_CORE.TagHelpers 我得到“无法解析包含程序集 'LC_PUBLIC_CORE.TagHelpers' 的 TagHelper ”,在引用上定义 Copy Local = true 也没有做任何事情
-
您在更改解决方案后是否重新构建了解决方案?有些东西不会立即被拾起(即 EF 核心模型更改和某些 Razor 方面,即用于脚手架)
-
是的@tsemg 我试过了。但我认为奇怪的是“@using”语句看起来像是找到了程序集(在 Visual Studio 中不显示错误)。
标签: c# asp.net-mvc asp.net-core