Обновление 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
,