2

我正在尝试从命令行更新某些项目的 nuget 引用。这些项目使用包含 PackageReference 元素的新格式。我正在使用的命令是:

nuget.exe update someproj.csproj

这会导致错误:

项目的默认 XML 命名空间必须是 MSBuild XML 命名空间。如果项目以 MSBuild 2003 格式创作,请将 xmlns="http://schemas.microsoft.com/developer/msbuild/2003" 添加到元素中。如果项目是以旧的 1.0 或 1.2 格式创作的,请将其转换为 MSBuild 2003 格式。

有没有办法使用 nuget.exe 或 dotnet.exe 从命令行更新包?

4

2 回答 2

3

目前,这是不可能的。请参阅此 GitHub 问题进行跟踪。

但是,用于添加引用的 cli 命令支持通过重新运行来更新项目中的单个包dotnet add package The.Package.Id

于 2017-06-13T19:34:44.483 回答
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

于 2017-06-13T17:55:08.960 回答