Подтвердить что ты не робот

VS 2015. Настройка правильной целевой структуры для веб-проекта ASP.NET 5

Я создал новый проект ASP.NET 5 MVC в Visual Studio 2015. В мастере создания проектов я решил показать шаблоны для .NET framework 4.6, а затем на следующем экране выбрал "Веб-приложение" из ASP.NET 5 Preview Templates.

Однако после создания кажется, что в проекте перечислены только "dnx451" и "dnxcore50" в разделе "frameworks" project.json:

  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },

Я попытался изменить "dnx451" на "dnx46". Проект был построен хорошо, но когда я попытался запустить его, у меня появилось следующее сообщение об ошибке:

Текущая целевая среда выполнения не совместима с "...".

Текущая среда выполнения: "DNX, Version = v4.5.1 (dnx451)" Тип: Архитектура CLR: x86 Версия: 1.0.0-beta5

Как можно изменить эту "целевую структуру" для проекта ASP.NET 5?

Вот мой global.json сейчас:

{
  "projects": [
    "src",
    "test",
    "wrap"
  ],
  "sdk": {
    "version": "1.0.0-beta5",
    "runtime": "clr",
    "architecture": "x86"
  }
}

но на самом деле не имеет значения, что там указано. Я уже пробовал разные сборки 1.0.0-beta5 и последние версии 1.0.0-beta6

4b9b3361

Ответ 1

Проблема заключается в том, что DNX знает, что ваш проект нацелен на dnx46, но IIS не является:). Итак, IIS запускается как .NET 4.5.1 (по умолчанию) и пытается загрузить проект, который несовместим с 4.5.1.

В будущей версии VS Tooling мы сделаем все возможное, чтобы обнаружить это, но до сих пор все немного грубо для веб-приложений, которые хотят настроить версии .NET выше. > 4.5.1. На данный момент я предлагаю использовать dnx451 до тех пор (если вы не зависите от возможностей .NET 4.5.2/4.6), но я расскажу о некоторых инструкциях ниже о том, как сделать эту работу сегодня, если вам нужно использовать 4.5.2 или выше.

Примечание. dnx452 и dnx46 поддерживаются полностью в консольных приложениях и при использовании серверов, отличных от IIS (например, Kestrel или WebListener). В основном все, что вы можете запустить с помощью встроенного загрузочного устройства dnx.exe, работает с dnx451 и dnx46, но для других хостинговых сред (IIS, IIS Express) нужны дополнительные подсказки для запуска правильной структуры.

Чтобы сделать эту работу сегодня, вам нужно установить переменную среды DNX_IIS_RUNTIME_FRAMEWORK в целевую структуру, которую вы хотите использовать. Вы можете сделать это на странице "Свойства проекта" для веб-приложения на вкладке "Отладка". Просто выберите профиль IIS Express и добавьте переменную среды, как показано ниже:

Launch Profile

Мы собираемся добавить это в Известные проблемы, потому что похоже, что мы его пропустили, и, как я сказал выше, мы собираемся улучшить опыт использования по умолчанию в VS, поэтому это необязательно:).

Ответ 2

"DNX_IIS_RUNTIME_FRAMEWORK" : "DNX46"

Значение чувствительно к регистру