Версия компилятора и версия NET Framework - сценарий с приложениями ASP.NET - PullRequest
5 голосов
/ 16 июня 2011

Сценарий:

У меня VS 2010 (компилятор C # 4), ориентированный на 3.5 на моем клиентском компьютере.

Я занимаюсь разработкой приложений ASP.NET.Я использую необязательные параметры (поддерживается C # 4) в файле класса и компилирую код, все выглядит нормально.

Позже возникнет проблема, обнаруженная во время выполнения, когда старый (я считаю, классический) ASPX использует эту функцию.Ни одна функция не принимает только аргументы x, где x на один меньше, чем необязательный параметр, является ошибкой времени выполнения.

Означает ли это, что обычные классы и т. Д. Используют клиентский компилятор C #, а представления (aspx) и такое использование?компилятор на сервере - таким образом, возникают проблемы, если C # 4 используется в файлах вида / формы?

1 Ответ

3 голосов
/ 16 июня 2011

Я считаю, что это связано с тем, что ASPX-страницы (пере?) Компилируются при первой загрузке IIS, а не компилируются в Visual Studio.Это позволяет обновлять их «на лету» без перекомпиляции, однако, поскольку они скомпилированы IIS, это вызывает сложности, которые вы видите.

Я не знаю, как IIS может использовать C #4 компилятор, но скомпилируйте в .NET 3.5, поэтому, похоже, ваши единственные варианты:

  1. Обновление до .NET 4
  2. Не используйте дополнительные параметры
  3. Донне вызывайте код, который использует необязательные параметры в ваших файлах .aspx.Я предполагаю, что если вы переместите вызовы в файл codebehind, он должен работать нормально, но я не пробовал.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...