我正在尝试从命令行更新某些项目的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从命令行更新软件包?
答案 0 :(得分:2)
您需要使用版本&gt; = 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
答案 1 :(得分:2)
目前,这是不可能的。有关跟踪,请参阅this GitHub issue。
用于添加引用的cli命令支持通过重新运行dotnet add package The.Package.Id
来更新项目中的单个包。