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

Повторный таргетинг Nuget после обновления с .Net Framework 4.5 до 4.6.1

У меня есть .net-решение с примерно 30 проектами, все из которых нацелены на .Net Framework 4.5. и каждый из ссылок содержит по меньшей мере 3-4 пакета NuGet.

Теперь нам нужно обновить их до .Net Framework 4.6.1. Итак, вот что мне нужно знать:

  • Нужно ли мне перенаправлять пакеты NuGet, или я могу пропустить это, так как это будет обновление на месте?
  • Если да, могу ли я просто обновить файл packages.config для каждого проекта, заменив targetFramework = "net45" на targetFramework = "net461" для каждого пакета NuGet? Я видел несколько потоков, рекомендующих удалить, а затем переустановить пакет с помощью команды "update-package". Я пробовал это сегодня, но в итоге у меня появилось несколько ошибок.
4b9b3361

Ответ 1

Пакеты не будут перенацеливаться автоматически, но для этого есть автоматическое исправление.

В консоли управления пакетами просто запустите:

Update-Package -Reinstall

Это заставит диспетчер пакетов переустанавливать каждый пакет в каждом проекте (без изменения версии ссылочного пакета).

Переустановив пакеты после целенаправленной новой структуры, это изменит все ссылки на правильную версию.

Вы также можете запустить это против одного проекта с помощью:

Update-Package -Reinstall -ProjectName Project.Name.Here

Я использовал эту технику много раз, чтобы исправить проблемы с ссылкой nuget.

Ответ 2

1 Найдите все файлы .csproj и замените

<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>

с

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

2 Найдите все файлы packages.config и .nuspec и замените

targetFramework="451"

с

targetFramework="461"

3 Найдите все решения, затем запустите

Update-Package -Reinstall -IgnoreDependencies

4 Найти все решения, а затем msbuild каждый из них.

Ответ 3

Исправлено с помощью -

Update-Package -reinstall

введите описание изображения здесь