Я использую библиотеки классов в моем проекте ASP.NET MVC3.Razor views: Intellisense не работает с C# 3 для библиотек классов
Чтобы получить его работу я сделал следующее:
- Использование областей
- Использование пользовательского
VirtualPathProvider
- Использование
BuildManager.AddReferencedAssembly
для каждой сборки - модифицировали csproj файлы, чтобы добавить поддержку для Razor/wizards (
<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
) - Скопировал
web.config
с веб-проекта в каждый проект библиотеки классов
Все работает, за исключением intellisense в бритве. Я получаю предупреждения, как это:
«лямбда-выражения» Функция не может быть использована, поскольку она не является частью языка C# спецификации ISO-2
Библиотеки классов устанавливаются использовать .NET 4.
Есть некоторые другие вопросы здесь адресации один и тот же вопрос
- Razor intellisense error: Feature 'extension method' cannot be used because it is not part of the ISO-2 C# language specification
- MVC 2 with VS 2010 View Building Error: Feature 'anonymous types' cannot be used because it is not part of the ISO-2 C# language specification
, но я не могу найти ничего, что бы заставить компилятор работать в 2.0 (и это не было бы сделать мои взгляды не в состоянии во время выполнения?)
Все строит отлично и работает при запуске проекта. Когда я открываю вид бритвы из библиотеки классов в VStudio, я получаю ошибки. Так что это неправильная настройка сборки. 'Мне кажется необычным, что у вас был бы проект Razor, установленный в ISO-2', который я не указал. Моя проблема в том, что я не знаю, почему VStudio intellisense хочет скомпилировать представления как C# 2.0 при открытии их в редакторе. – jgauffin
@jgauffin: Значит, даже код, который вызывает ошибки в VS, работает, когда вы на самом деле создаете? И это * не происходит, когда у вас есть представления Razor, которых нет в библиотеках классов? Похоже, что это «просто» ошибка в редакторе представлений, но раздражающая :( –
Это раздражает да. Рассматривая другие вопросы, похоже, что есть решение (но их ответы не помогли мне отследить проблему) – jgauffin