我希望将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脱机安装所需的正确包?
发布于 2019-07-22 17:22:27
下面是如何将正确的依赖项安装到脱机系统中:
论网络系统
PackageTools.cs并修改函数GetRangedPackageVersion,使其包含下面的代码。这是为了修复一个"bug“,在这个”bug“中,当较新的包可用时,不会下载旧的包--但是下面的步骤9将需要旧的包。NuGetDependencyDownloader以下载包及其依赖项论离线系统
c:\Work\2019-07018 Nuget Offline\)Nuget Package Manager | Package Sources选项。添加指向步骤5. 指定本地包源屏幕中使用的目录的源。Nuget Package Manager。 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;
}发布于 2019-07-21 14:25:33
如果您查看VS中预览更改对话框的输出,所有的Microsoft.AspNetCore包都是2.0.1版本,而运行nuget.exe时,它的版本为1.1.x。如果您论nuget.org并展开依赖项,您将看到它对net46和netstandard2.0的1.1包有依赖关系,而对于netstandard2.0则有2.0依赖关系。
由此可以推断,您的项目使用的是netcoreapp2.0、netstandard2.0或更高版本,而nuget.exe则可能使用一些.NET框架作为依赖项。
至于获得项目实际使用的相同包的方法,我过去曾多次回答这个问题,我通常使用链接到我第一次回答它
https://stackoverflow.com/questions/57116073
复制相似问题