14

У меня смешанная среда, в которой некоторые разработчики работают над Visual Studio 2013, а другие работают в 2015 году. Все работало нормально, пока мы не обновили пакет NuGet с ссылкой на Visual Studio 2015.Как использовать NuGet 3.0 с Visual Studio 2013?

Теперь, когда вы пытаетесь восстановить пакеты NuGet из Visual Studio 2013, я вижу следующее сообщение об ошибке:

NuGet Package restore failed for project Foo: The 'System.Linq 4.0.0' package requires NuGet client version '3.0' or above, but the current NuGet version is '2.8.60723.765'..

по-видимому, нет NuGet версии 3.x для Visual Studio 2013.

есть ли решение продолжать работать как с Visual Studio 2013 и 2015 годы?

ответ

11

Как отметил в своем ответе Ханс Пассант, NuGet 3.0 не нужен для проектов, которые нацелены только на платформу Vanilla .NET 4.5 (и это то, что Visual Studio 2013 предназначалось для таргетинга в нашем случае).

Это было добавление обновленного пакета NuGet, в частности System.Collections.Immutable 1.1.37, который ввел зависимость от .NETPlatform,Version=v5.0, который в свою очередь срабатывает зависимость случайно на NuGet 3.0.

Возврат к версии 1.1.36 этого пакета решил проблему.

+1

Мне нужно NuGet 3.0 на VS 2013, потому что 3. # поддерживает ContentFiles, который 2. # не :( – Phill

+0

+1 Спасибо, у меня была аналогичная проблема с новой версия Moq, установив предыдущую версию Moq без этой зависимости! Я терпеливо жду, пока моя команда обновится до 2015 года ... – EaziLuizi

+0

Это не имеет никакого смысла. У NuGet 3, по-видимому, есть новая структура источника пакета, и, возможно, 3 [не обрабатывает старый формальный колодец] (https://github.com/NuGet/Home/issues/1909). Поддерживает ли 2 новую структуру? Если нет, это похоже на разум, достаточный для обновления. – jpmc26

12

Sigh, команда, которая не может решить, какие инструменты они используют, что может пойти не так? Хорошо. И другая довольно неприятная проблема, этот пакет предназначен для проектов, нацеленных на CoreCLR и на вкус Win10 Universal приложений. Вы не можете создать и создать такой проект на VS2013. Поэтому попытка решить проблему с версией Nuget не купит вам ничего.

Вам, ребята, нужно собраться вместе и выработать какие-то проекты, над которыми вы собираетесь работать. Если CoreCLR - это то, что все хотят делать, и спросите, почему, то все должно обновить до VS2015.

+0

Ханс, благодарю вас за ответ. Я не знал, что мы каким-то образом контрабандировали зависимость CoreCLR в нашем проекте. Это не было преднамеренным, поскольку мы в настоящее время строим для Win32. Чтобы обеспечить некоторый будущий путь к Universal Apps, большая часть нашего кода построена как PCL; Я подтверждаю, что это, вероятно, проблема, вызвавшая зависимость «NuGet 3.0». –

+0

Мы использовали System.Collections.Immutable 1.1.36 (для .NET 4.5). Переключение на 1.1.37 ввело зависимость от .NET 5.0, которая была случайной. –

+0

http://stackoverflow.com/a/32189169/17034 –

Смежные вопросы