Ошибка использования 'var' после обновления до Visual Studio 2010 - PullRequest
4 голосов
/ 21 июня 2010

Мы недавно обновили VS2008 до VS2010.

Наш проект компилируется нормально;но когда мы запускаем веб-приложение, мы получаем следующую ошибку при открытии Default.aspx:

Ошибка сервера в «/» приложении.Ошибка компиляции Описание: во время компиляции ресурса, необходимого для обслуживания этого запроса, произошла ошибка.Пожалуйста, просмотрите следующие конкретные подробности ошибки и измените исходный код соответствующим образом.

Сообщение об ошибке компилятора: CS0246: Не удалось найти тип или имя пространства имен 'var' (вы пропустили директиву using или ссылку на сборку?)

Открыв страницу и наведя курсор на объявление 'var', VS2010 правильно распознает, что его тип является RegEx.

Я думаю, что-то необычное могло произойти вили наш web.config или machine.config во время обновления.

Кто-нибудь еще сталкивался с этой проблемой раньше?Любая помощь будет принята с благодарностью, надеюсь, она поможет мне сэкономить время, углубившись в эти файлы.

РЕДАКТИРОВАТЬ: Вот соответствующий фрагмент кода, который взрывается:

Line 10:    protected void valSearchFreeText_ServerValidate(object source, ServerValidateEventArgs args)
Line 11:    {
Line 12:        var url = new Regex(@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?", RegexOptions.IgnoreCase);
Line 13:        var html = new Regex(@"[<,>]", RegexOptions.IgnoreCase);
Line 14:        args.IsValid = !html.IsMatch(args.Value) && !url.IsMatch(args.Value);

Я не верю, что причиной является .NET 4.0;мы только обновились с VS2008 до VS2010;мы не мигрировали с .NET 3.5 на .NET 4.0

. Я дважды проверю сервер ASP.NET Development Server и IIS и через несколько минут отправлю сообщение с результатами.Это определенно выбрасывается с сервера разработки.

Edit 2 Это выбрасывается как с сервера разработки, так и с IIS.System.Xml.Linq также включен в раздел сборок нашего web.config:

<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

Ответы [ 3 ]

5 голосов
/ 21 июня 2010

Проверьте файл web.config для узла configuration/system.codedom/compilers/compiler. Должен быть providerOption дочерний узел, который определяет используемую версию компилятора. Это должно выглядеть как <providerOption name="CompilerVersion" value="v3.5"/>. Похоже, ваш говорит 2.0 вместо 3.5.

3 голосов
/ 21 июня 2010

Установлен ли связанный пул приложений в IIS для использования .Net 4 framework?

0 голосов
/ 21 июня 2010

Убедитесь, что целевая структура установлена ​​на 3,5 или выше Кроме того, дважды проверьте, что у вас есть хороший файл web.config в корневой папке приложения (скопируйте рекомендуемый файл web.config и переименуйте его.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...