Не удается найти цель выполнения для фреймворка.NETCoreApp=v1 совместим с одной из целевых сред выполнения
Я пытаюсь перенести Asp.Net основной проект RC1 для RC2 и следовали этому документация и следовал по - инструкции для миграции DNX в .NET CLI.
Я получаю следующую ошибку, когда я пытаюсь dotnet run:
не удается найти цель выполнения для фреймворка'.NETCoreAPP, Version=v1. 0'
совместимость с одной из целевых сред выполнения: 'win10-x64, win81-x64,
на Win8-x64, а с Win7-х64'. Вероятный причины:
- проект не был восстановлен или восстановление не удалось-запустите 'dotnet restore'
- проект не перечисляет один из "win10-x64, win81-x64, win7-x64" в "времени выполнения"
Я dotnet restore и это, кажется, завершилось успешно.
я обновил все соответствующие пакеты для RC2.
10 ответов:
Я должен был сделать именно то, что сообщение об ошибке говорит. При миграции из RC1, я не понял, что я должен был указать в своем .
в своем
project.jsonя добавил следующий раздел:"runtimes": { "win10-x64": { } }и мне было хорошо идти.
Обновление 27 Февраля 2017
новые шаблоны проектов в Visual Studio 2017 RC больше не требуют указания времени выполнения (в
project.jsonили.csproj) in заранее, если вы решите развернуть свое приложение какFramework Dependent Deployment(FDD).Если, однако, вы решили развернуть приложение с помощью
Self-contained Deployment(SCD), затем вам нужно будет указать все времена выполнения, которые вы хотите, чтобы ваше приложение работало на заранее в своем .Ниже приведен пример
.csprojфайл для приложения, которое использует метод развертывания SCD:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp1.0</TargetFramework> <VersionPrefix>1.0.0</VersionPrefix> <DebugType>Portable</DebugType> <RuntimeIdentifiers>win10-x64;osx.10.11-x64</RuntimeIdentifiers> </PropertyGroup> <ItemGroup> <PackageReference Include="Newtonsoft.Json" Version="9.0.1" /> </ItemGroup> </Project>см. этой ссылке для получения дополнительной информации, которая включает в себя тщательную описание обоих типов вариантов развертывания, а также их преимуществ и недостатков.
я получил эту ошибку после обновления основного шаблона VS2015 до 1.0.1. Это было потому, что у меня есть PCL, который нацелен
netstandard 1.4Если вы не хотите указывать каждую среду выполнения, просто измените разметку зависимостей дляMicrosoft.NETCore.Appдля этого:"Microsoft.NETCore.App": { "type": "platform", "version": "1.0.1" }
в проект.json я изменил это (добавил тип):
//"Microsoft.NETCore.App": "1.1.0", "Microsoft.NETCore.App": { "version": "1.1.0", "type": "platform" },теперь я могу снова строить :-)
обновление: теперь я могу построить снова, но не "бежать" на сайт.
вы должны убедиться, что у вас есть время выполнения и sdk также:
*) средства Visual Studio включают .NET Core 1.0.1. Чтобы добавить поддержку .NET Core 1.1, необходимо также установить .NET Core 1.1 во время выполнения.
Я получил эту ошибку, потому что я использовал невероятно сломанный менеджер пакетов NuGet в Visual Studio 2015 для обновления моего проекта.зависимости json. Оказалось вот что:
"frameworks": { "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.1" } } } }в:
"dependencies": { "Microsoft.NETCore.App": "1.1.0" }, "frameworks": { "netcoreapp1.0": {} }до свидания, определение платформы!
Если Вы читаете эти две ссылки:
во-первых, https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/using-with-xplat-cli
и
во-вторых,https://docs.microsoft.com/en-us/dotnet/articles/core/rid-catalog
вы увидите, что вы можете построить полностью портативную версию, используя следующий фрагмент кода в корневом элементе зависимостей в project.формат JSON. Нет необходимости указывать время выполнения следующим образом это среда выполнения основного уровня, которая должна быть агностической платформой или известна как"зависящая от платформы"
"Microsoft.NETCore.App": { "type": "platform", "version": "1.0.1" }или вы можете построить для нескольких целевых платформ ("автономные приложения"), удалив элемент type: platform следующим образом:
добавьте это в корневой элемент зависимостей в проекте.json
"Microsoft.NETCore.App": { "version": "1.0.1" }и добавьте это как новый элемент корневого уровня
"runtimes": { "win10-x64": {}, /* one or more RIDs */ "osx.10.10-x64": {} },несколько целевых требует, чтобы вы предоставляли имена платформ, известные как " .NET Core Идентификаторы времени выполнения (RID) " список из них можно найти по второй ссылке выше. Он включает в себя множество разновидностей Windows, Linux и OS X.
для хорошего обзора различных вариантов развертывания вы также можете прочитать эту страницу:
https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/index
из приведенной выше ссылки:
вы можете создать два типа развертываний для приложений .NET Core:
фреймворк-зависимое развертывание
как следует из названия, развертывание, зависящее от платформы (FDD), зависит от общей общесистемной версии .NET Core, которая будет присутствовать в целевой системе. Потому что .Чистая ядро уже присутствует, приложения можно переносить между установками .Чистые ядра. Ваше приложение содержит только свой собственный код и любые сторонние зависимости, которые находятся за пределами библиотек .NET Core. FDDs содержат .dll файлы, которые могут быть запущены с помощью утилита dotnet из командной строки. Например, приложение dotnet.dll запускает приложение с именем app.
автономное развертывание
В отличие от FDD, автономное развертывание (SCD) не зависит от наличия каких-либо общих компонентов в целевой системе. Все компоненты, включая библиотеки .NET Core и среду выполнения .NET Core, включены в приложение и изолированы от других приложений .NET Core. Степени включают в себя исполняемый (например, приложение.exe на платформах Windows для приложения с именем app), которое является переименованной версией узла .NET Core для конкретной платформы, и a .DLL файл (например, приложение.dll), который является фактическим приложением.
в моем случае я только что обновил все пакеты nuget до их последних версий, и nuget изменил мой " Microsoft.NETCore.Приложение ' пакет ссылка на следующее:
"Microsoft.NETCore.App": "1.1.0"Я изменил его обратно в форму, и все работало:
"Microsoft.NETCore.App": { "version": "1.1.0", "type": "platform" }до свидания 3 часа моей жизни....
Если вы запустите dotnet new и посмотрите на выходной проект json, вы увидите, что моникеры изменились.
внести изменения в свой проект.json следующим образом:
"dependencies": {}, "frameworks": { "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.1" } }, "imports": "dnxcore50" } }
Я нашел одну полезную ссылку из комментария Свика под следующей страницей: https://github.com/dotnet/cli/issues/2442
я обнаружил, что вам нужно следующее в проекте.формат JSON. Вот что требовалось, чтобы исправить мою ошибку:
зависимости
"dependencies": { "Microsoft.NETCore.App": { "version": "1.0.1", "type": "platform" }, }рамки
"frameworks": { "netcoreapp1.0": { "imports": [ "dotnet5.6", "portable-net45+win8" ] } },Runtime
"runtimeOptions": { "configProperties": { "System.GC.Server": true } },можно добавить среды выполнения, если планируется публикация в IIS. Пожалуйста, смотрите что-то следующее:
"runtimes": { "win10-x64": {} },вот общий совет, который хорошо работал для меня. Когда мои вещи ломаются, я иногда создаю a по умолчанию ASP.NET основное приложение либо веб-сайт, либо пустой веб-api, чтобы посмотреть на зависимости в проекте.json и в других местах. Вы часто можете поймать много вещей таким образом. Ответы выше находятся на месте, но я думал, что напишу это здесь, Если кто-то захочет отделить логику больше в общем формате шаблона, который ASP.NET основные виды использования.
в Windows 7 с VS 2015, решение после обновления до netcore 1.1.2 изменяло проект.файл JSON следующим образом:
{ "version": "1.0.0-*", "buildOptions": { "emitEntryPoint": true }, "dependencies": { "Microsoft.NETCore.App": "1.1.2" }, "frameworks": { "netcoreapp1.0": { "imports": "dnxcore50" //This line must disappear } }, "runtimes": { // "win7-x64": {} //Add this lines } // }после изменения этого зависимости будут обновляться и viola.
Comments