我想将OPCFoundation.NetStandard.Opc.Ua
版本1.4.355.26
(及其所有依赖项)安装到脱机计算机上。我的在线和离线计算机都在运行Visual Studio 2019 16.1.3
。
当我使用OPCFoundation.NetStandard.Opc.Ua
安装1.4.355.26
版本NuGet Package Manager
时,它会安装许多依赖项,包括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
进行脱机安装所需的正确软件包?
答案 0 :(得分:0)
如果您在VS中查看“预览更改”对话框的输出,则所有Microsoft.AspNetCore
软件包的版本均为2.0.1,而运行nuget.exe
的软件包的版本为1.1.x。如果您look at OPCFoundation.NetStandard.Opc.Ua
on nuget.org并展开依赖关系,则会看到它与net46
和netstandard2.0
的1.1程序包具有依赖关系,而对netstandard2.0
的2.0依赖项具有依赖关系。
由此我可以推断出您的项目正在使用netcoreapp2.0
,netstandard2.0
或更高版本,而nuget.exe
可能正在使用某些.NET Framework进行依赖。
关于获取项目实际使用的相同软件包的方法,我过去已经多次回答了这个问题,通常我会link to the first time I answered it
答案 1 :(得分:0)
这是我如何为离线系统安装正确的依赖项:
PackageTools.cs
并修改函数GetRangedPackageVersion
,使其包含下面的代码。这是修复“错误”所必需的,在该错误中,当有较新的软件包可用时,不会下载较旧的软件包-但在下面的步骤9中将需要较旧的软件包。NuGetDependencyDownloader
以下载软件包及其依赖项c:\Work\2019-07018 Nuget Offline\
)Nuget Package Manager | Package Sources
的选项。添加指向步骤5中使用的目录的源。Specify Local Package Source Screenshot Nuget Package Manager
。Package source
。Specify package source screenshot 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;
}