Visual Studio, Razor, BuildProviders и Intellisense - PullRequest
11 голосов
/ 28 июня 2011

Я пытаюсь заставить Intellisense работать для видов бритвы в не-ASP.NET-проекте и хотел бы понять взаимосвязь между редактором Razor VisualStudio и BuildProviders.

Для фона я пишуфреймворк поверх Manos (моно веб-сервер), который использует Razor для своего движка представления.У меня эта часть работает отлично, но Intellisense в VS не работает, давая диапазон ошибок от неизвестных типов незарегистрированным провайдерам сборки, в зависимости от того, где размещены выходные DLL проекта.

Мой проектбиблиотека классов .NET с файлами .cshtml (действие по сборке отсутствует)Базовый класс вида бритвы определен в отдельной сборке (вне проекта), которая может быть зарегистрирована в GAC, но в настоящее время нет.

Я уже читал эти статьи:

Похоже, мне нужно написать свой собственный BuildProvider, но не могу найти документацию, объясняющую связь между поставщиком сборки и intellisense бритвы.

Ответы [ 2 ]

1 голос
/ 07 августа 2011

Редактор Razor довольно сильно привязан к среде выполнения ASP.Net, фактически он на самом деле запускает ASP.Net в фоновом режиме для сбора необходимой информации времени выполнения.

Мое единственное предложение длядобросовестность IntelliSense - это своего рода супер-хак.Вместо библиотеки классов вы можете сделать ваше приложение проектом веб-приложения.WAP - это просто библиотека классов, из которой VS может разместить веб-сайт.если вы удалите ВСЕ лишние вещи (Global.asax, web.config и т. д.), вы можете получить именно то, что ищете.Это обходной путь, и немного натянутый, но попробуйте, он может просто сработать:)

1 голос
/ 29 июня 2011

Razor intellisense в лучшем случае облупился.Однако, если вы используете VS SP1, это немного лучше.Обходной путь web.config (как указано в вашей третьей ссылке) работает для меня в библиотеке классов, если расширение - cshtml (не пробовал vbhtml, поэтому не могу сказать наверняка).

Также примитепосмотрите здесь: http://razorpad.codeplex.com/ Как и в LinqPad, это позволит вам заранее проверить свой код бритвы.

...