Не удается найти цель выполнения для фреймворка.NETCoreApp=v1 совместим с одной из целевых сред выполнения



Я пытаюсь перенести Asp.Net основной проект RC1 для RC2 и следовали этому документация и следовал по - инструкции для миграции DNX в .NET CLI.



Я получаю следующую ошибку, когда я пытаюсь dotnet run:




не удается найти цель выполнения для фреймворка'.NETCoreAPP, Version=v1. 0'
совместимость с одной из целевых сред выполнения: 'win10-x64, win81-x64,
на Win8-x64, а с Win7-х64'. Вероятный причины:




  1. проект не был восстановлен или восстановление не удалось-запустите 'dotnet restore'

  2. проект не перечисляет один из "win10-x64, win81-x64, win7-x64" в "времени выполнения"




Я dotnet restore и это, кажется, завершилось успешно.



я обновил все соответствующие пакеты для RC2.

526   10  

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 во время выполнения.

https://www.microsoft.com/net/download/core#/current

Я получил эту ошибку, потому что я использовал невероятно сломанный менеджер пакетов 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

    Ничего не найдено.