Taghelper: не удается разрешить TagHelper, содержащий сборку

Я не могу заставить собственный TagHelper работать в моем проекте ASP.NET v5. Пользовательский TagHelper находится в самом веб-проекте. Я попытался следовать этому примеру этому примеру из CodeProject, а также из этого руководства.

Когда я пытаюсь использовать тег без addTagHelper: ничего не трансформируется, в помощнике по тегам нет точек останова.

Когда я пытаюсь @addTagHelper "*, MyWebApplication" перейти к Viewcomponent, возникает ошибка MyWebApplication'. Error: Could not load file or assembly 'MyWebApplication'.

Что мне не хватает?

Версии инструмента:

Microsoft Visual Studio Enterprise 2015 RC
Version 14.0.22823.1 D14REL
Microsoft .NET Framework Version 4.6.00057
Microsoft.AspNet.Mvc 6.0.0-beta4

person fiat    schedule 07.07.2015    source источник
comment
Можете ли вы добавить помощника в другую сборку и посмотреть, решит ли это проблему?   -  person Brian Mains    schedule 07.07.2015
comment
Это был мой следующий шаг, но я с этим справился - см. мой ответ   -  person fiat    schedule 07.07.2015
comment
См. Создание помощников по тегам bit.ly/1Mqd0th, где это объясняется.   -  person RickAndMSFT    schedule 16.09.2015


Ответы (1)


Объявленная подпись для addTagHelper:

@addTagHelper "className/Filter", "assemblyName"

Поведение на самом деле выглядит так (по крайней мере, для помощников в том же веб-проекте)

addTagHelper "className/Filter", "folderName"

потому что, по крайней мере, в Beta6 имя сборки является именем папки и игнорирует атрибуты в свойствах проекта.

Вот пример рабочей демонстрации

  1. Нажмите F5, просмотрите кошек.
  2. Отредактируйте свойства проекта, чтобы изменить имя сборки.
  3. Нажмите F5, просмотрите кошек. ‹‹ Это не должно работать?!
  4. Закройте решение, переименуйте каталог на диске TagHelperDemo -> TagHelperFolderDemo
  5. Страница наблюдения не работает, пока имя папки не используется для директивы addTagHelper

PS: @addTagHelper требуется, даже если TagHelper находится в том же проекте. VS2015 перекрашивает тег в фиолетовый цвет, когда на него нацелен TagHelper.

person fiat    schedule 07.07.2015
comment
Это все еще проблема в Core 1.1. Вам нужно указать папку, а не сборку. Например, если проект находится в папке proj-name/src/proj-name.csproj, то правильной директивой является @addTagHelper *, proj-name независимо от вашего пространства имен. - person Dmytro Bogatov; 22.02.2017