Обновление nuget.exe с новым форматом csproj

Я пытаюсь обновить ссылки на nuget некоторых проектов из командной строки. Эти проекты используют новый формат, который включает элементы PackageReference. Я использую команду:

nuget.exe update someproj.csproj

Это приводит к ошибке:

The default XML namespace of the project must be the MSBuild XML namespace. 
If the project is authored in the MSBuild 2003 format, please add 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the <Project> 
element. If the project has been authored in the old 1.0 or 1.2 format, 
please convert it to MSBuild 2003 format.

Есть ли способ использовать nuget.exe или dotnet.exe для обновления пакетов из командной строки?

2 ответа

Решение

Вам понадобится версия>= 4 файла nuget.exe для работы с новым форматом csproj.

Однако вам все равно нужно будет использовать старый стиль packages.config или вы получите следующий вывод

C:\dev>nuget.exe update test.csproj
MSBuild auto-detection: using msbuild version '15.1.548.43366' from 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\bin'.
Unable to update. The project does not contain a packages.config file.

Однако вы можете использовать командлеты powershell

Update-Package

Их можно запустить из консоли диспетчера пакетов ( https://docs.microsoft.com/en-us/nuget/tools/package-manager-console).

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

Import-Module PackageManagement.Cmdlets.dll 

Set-Project MySolution "MySolution.sln" 

Update-Package

Более подробную информацию об этом можно найти в этом блоге - http://community.sharpdevelop.net/blogs/mattward/archive/2011/06/12/InstallingNuGetPackagesOutsideVisualStudio.aspx

На данный момент это невозможно. Смотрите эту проблему GitHub для отслеживания.

Однако команды cli для добавления ссылок поддерживают обновление отдельных пакетов в проекте путем повторного запуска dotnet add package The.Package.Id,

Другие вопросы по тегам