[英]Nuget.exe and NuGet Package Manager resolve different dependencies
我想将OPCFoundation.NetStandard.Opc.Ua
版本1.4.355.26
(及其所有依赖项)安装到脱机计算机上。 我的在线和离线计算机都运行Visual Studio 2019 16.1.3
。
当我使用NuGet Package Manager
安装OPCFoundation.NetStandard.Opc.Ua
版本1.4.355.26
,它会安装许多依赖项,包括Libuv.1.10.0
。 看截图:
当我下载相同的软件包进行脱机安装时, nuget.exe
获取Libuv.1.9.2
。 看截图:
C:\Users\cstankevitz\Downloads>nuget.exe install OPCFoundation.NetStandard.Opc.Ua
Feeds used:
https://api.nuget.org/v3/index.json
C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
Installing package 'OPCFoundation.NetStandard.Opc.Ua' to 'C:\Users\cstankevitz\Downloads'.
GET https://api.nuget.org/v3/registration3-gz-semver2/opcfoundation.netstandard.opc.ua/index.json
OK https://api.nuget.org/v3/registration3-gz-semver2/opcfoundation.netstandard.opc.ua/index.json 558ms
Attempting to gather dependency information for package 'OPCFoundation.NetStandard.Opc.Ua.1.4.355.26' with respect to project 'C:\Users\cstankevitz\Downloads', targeting 'Any,Version=v0.0'
Gathering dependency information took 16.89 sec
Attempting to resolve dependencies for package 'OPCFoundation.NetStandard.Opc.Ua.1.4.355.26' with DependencyBehavior 'Lowest'
Resolving dependency information took 0 ms
Resolving actions to install package 'OPCFoundation.NetStandard.Opc.Ua.1.4.355.26'
Resolved actions to install package 'OPCFoundation.NetStandard.Opc.Ua.1.4.355.26'
Retrieving package 'Libuv 1.9.2' from 'nuget.org'.
...
当然,当我将下载的软件包带到脱机计算机上并使用Visual Studio 2019 NuGet Package Manager
安装它们时,安装将失败,因为Libuv.1.10.0
不可用。
如何获取nuget.exe
(或任何其他工具)以下载NuGet Package Manager
进行脱机安装所需的正确软件包?
如果在VS中查看“预览更改”对话框的输出,则所有Microsoft.AspNetCore
软件包的版本均为2.0.1,而运行nuget.exe
版本为1.1.x。 如果您在OPCFoundation.NetStandard.Opc.Ua
上查看OPCFoundation.NetStandard.Opc.Ua并展开依赖关系,则会看到它对net46
和netstandard2.0
的1.1包具有依赖关系,而对netstandard2.0
2.0依赖关系具有依赖关系。
由此我可以推断出您的项目正在使用netcoreapp2.0
, netstandard2.0
或更高版本,而nuget.exe
可能正在使用某些.NET Framework进行依赖。
至于获取项目实际使用的相同软件包的方法,我过去已经回答了几次这个问题,通常我会链接到我第一次回答它的时候
这是我如何为离线系统安装正确的依赖项:
PackageTools.cs
并修改函数GetRangedPackageVersion
,使其包含以下代码。 这是修复“错误”所必需的,在该“错误”中,当有较新的软件包可用时,不会下载较旧的软件包-但在下面的步骤9中将需要较旧的软件包。 NuGetDependencyDownloader
以下载软件包及其依赖项 c:\\Work\\2019-07018 Nuget Offline\\
) Nuget Package Manager | Package Sources
选项Nuget Package Manager | Package Sources
Nuget Package Manager | Package Sources
。 添加一个指向步骤5中使用的目录的源。 指定本地包源屏幕截图 Nuget Package Manager
。 Package source
。 指定Package Source屏幕截图 private IPackage GetRangedPackageVersion(IQueryable<IPackage> packages, IVersionSpec versionSpec)
{
packages = packages.Where(o => o.Version == versionSpec.MinVersion);
IPackage package = packages
.OrderByDescending(o => o.Version)
.FirstOrDefault();
return package;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.