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

Ваш проект не ссылается на ".NETFramework, Version = v4.5".

Я использую VS 2015.

Ваш проект не ссылается на ".NETFramework, Version = 4.5" фреймворк. Добавьте ссылку на ".NETFramework, Version = 4.5" в раздел "рамки" вашего проекта .json, а затем повторно запустите NuGet восстановить.

Я получаю эту ошибку на своих уровнях доступа к данным и бизнес-логике, вскоре после добавления в мой MVC-слой. До сих пор дела шли хорошо, но я не знаю, что вызвало эту ошибку. Вот мой project.json:

{
  "version": "1.0.0-*",
  "description": "foo bar Class Library",
  "authors": [ "foo bar" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "frameworks": {
    "net451": { },
    "dotnet5.4": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-beta-23516",
        "System.Collections": "4.0.11-beta-23516",
        "System.Linq": "4.0.1-beta-23516",
        "System.Runtime": "4.0.21-beta-23516",
        "System.Threading": "4.0.11-beta-23516"
      }
    }
  }
}

Вот что я пробовал:

  • Заменить "dotnet5.4" на "net451" (и удалить его), как указано в этом ответе.

Результат - та же ошибка.

  1. Заменить "dotnet5.4" на "net45" и оставить "net451". Это приводит к новой ошибке:

В вашем проекте .json нет раздела времени выполнения. Вы должны добавить "runtimes": { "win": {}} 'в ваш project.json, а затем повторно запустите NuGet восстановить.

Я попытался сделать это, предложив эту ошибку и добавив

"runtimes": {
    "win":  {}
  },

Это вызвало у меня эту ошибку, которую я не могу пропустить мимо:

Ваш project.json не отображает "выигрыш" в качестве целевой среды выполнения. Вам следует add ' "win": {}' в вашем разделе "runtimes" в файле project.json, а затем перезапустите восстановление NuGet.

Я уже добавил "победу", и это начинает ощущаться как красная селедка. Что я делаю, изменяя project.json напрямую, не NuGet обрабатывает это?

4b9b3361

Ответ 1

Я просто понял проблему. В итоге я нажал Restore Nuget Packages на уровне решения, и мне удалось скомпилировать мой файл PCL, а затем остальное решение.

Надеюсь, что это поможет.

Ответ 2

У меня была такая же проблема, и мне пришлось не только удалить содержимое папок bin и obj, но и каталог .vs для решения.

Ответ 3

У меня была та же проблема - это все еще происходит с использованием Visual Studio 2017.3, которая использует файлы .csproj вместо project.json. Интересно, что сообщение об ошибке по-прежнему содержит текст "project.json".

Кажется, причиной этой проблемы является файл блокировки или файл obj\project.assets.json (в зависимости от вашей версии VS) из предыдущей сборки, который не удаляется во время очистки, как описано здесь.

/obj каталога /obj вручную - это быстрый обходной путь.

Если у вас есть "новый" проект (например,.NET Core или netstandard project, созданный в VS 2017) и "старый" проект в том же каталоге (например,.NET 4.6, созданный в VS 2015), похоже, они будут постоянно бороться, потому что они оба используют ./obj dir по-разному. Больше информации здесь. ,

Обходной путь msbuild - заставить один из ваших проектов использовать другой obj. Я добавил это в мой "старый" csproj:

<PropertyGroup>
  <!-- Needed due to old project and new project in same directory: https://github.com/NuGet/Home/issues/5126 -->
  <BaseIntermediateOutputPath>obj_netfx\</BaseIntermediateOutputPath>
</PropertyGroup>

Ответ 4

Кроме того, сегодня я обнаружил, что был изгоем project.lock.json, который вызывал эту проблему для меня. Как только я удалил файл, проблема исчезла.

Ответ 5

У меня возникла та же проблема после обновления до Visual Studio для Mac 7.4 (сборка 1033):

Error: Your project is not referencing the "MonoAndroid,Version=v7.1" framework. Add a reference to "MonoAndroid,Version=v7.1" in the "frameworks" section of your project.json, and then re-run NuGet restore.

У меня нет файлов проекта json. Приведенные здесь советы также не помогли, поэтому мне пришлось выяснить, каким сложным образом мне пришлось установить последний Android SDK (Oreo 8.1) в дополнение к целевому SDK (Nougat 7.1).

enter image description here

Ответ 6

У меня та же проблема, но я решил, добавив соответствующий ресурс пакета vs2017-->tools-->options-->Nugetpacakge manager--->updated в vs2017-->tools-->options-->Nugetpacakge manager--->updated правильный URL-адрес пакета.

См. Ниже изображение

enter image description here

Ответ 7

У меня та же проблема, но по-другому.

        Your project does not reference ".NETFramework,Version=v4.5" framework. Add a reference to ".NETFramework,Version=v4.5" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.          

Добавлена ссылка в TargetFrameworks.

enter image description here

Перестройте проект после удаления obj bin и .vs. Тем не менее он бросает то же самое.