Joe*_*Joe 8 powershell offline nuget
我正在尝试在运行 Windows Server 2016 的离线工作机器上安装 NuGet。文件可以通过 NAS 上传到这台机器。所有在线机器都具有受限的管理员权限,而离线机器具有完全的管理员权限。我找到了离线机器的安装指南,但它们都假设在线机器具有管理员权限。
如何在未连接的机器上安装 PowerShell 的 Nuget 提供程序,以便我可以从 PS 命令行安装 nuget 包?[堆栈交换]
这些参考建议将 NuGet 安装在在线机器上(需要管理员权限),然后将安装的 dll 复制到离线机器上。这是我迄今为止尝试过的:
PS C:\Windows\system32> Get-PackageProvider -ListAvailable
Name Version DynamicOptions
---- ------- --------------
msi 3.0.0.0 AdditionalArguments
msu 3.0.0.0
nuget 2.8.5.208
PowerShellGet 1.0.0.1 PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, ...
Programs 3.0.0.0 IncludeWindowsInstaller, IncludeSystemComponent
Run Code Online (Sandbox Code Playgroud)
请注意,NuGet 没有 DynamicOptions。它显然没有正确安装。我对版本 2.8.5.208 和 2.8.5.205 重复了这个过程(都失败了)。我怀疑我复制到离线机器的 dll 的元数据有问题。
如何让 NuGet 在我的离线机器上正确安装而没有在线机器上的管理员权限?
在离线或在线 Windows 计算机上运行
Install-PackageProvider -Name NuGet
如果您收到以下错误
Install-PackageProvider :在“C:\Program Files\PackageManagement\ProviderAssemblies”中安装软件包需要管理员权限。 使用具有管理员权限的帐户登录计算机,然后重试, 或通过在命令中添加“-Scope CurrentUser”来安装在“C:\Users\\AppData\Local\PackageManagement\ProviderAssemblies”中。您还可以尝试使用提升的权限(以管理员身份运行)运行 Windows PowerShell 会话。 在行:1 字符:1 + Install-PackageProvider -Name NuGet
然后使用-Scope CurrentUser运行它
Install-PackageProvider -Name NuGet -Scope CurrentUser
我们需要收到错误的 URL
警告:无法从 URI 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409' 下载到 ''。 警告:无法下载可用提供程序的列表。检查您的互联网连接。 Install-PackageProvider :未找到与提供程序“NuGet”的指定搜索条件匹配的内容。包提供者需要“PackageManagement”和“Provider”标签。请检查指定的包裹是否有标签。
目前这将是https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409
因此,转到在线机器并在浏览器中打开此 URL。
您将收到以下 XML
<?xml version="1.0" encoding="utf-8"?>
<SoftwareIdentity xmlns="http://standards.iso.org/iso/19770/-2/2015/schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:discovery="http://packagemanagement.org/discovery" patch="false" media="(OS:windows)" name="OneGet.Providers" tagVersion="1" uniqueId="OneGet.Providers.1" version="1.15.194.0" versionScheme="multipartnumeric">
<!--
This swidtag is a Discovery Feed that has pointers to the SWIDTAGs for
the providers that the bootstrapper can download.
-->
<Link href="https://onegetcdn.azureedge.net/providers/nuget-2.8.5.208.package.swidtag" type="application/swid-tag+xml" rel="package" discovery:name="nuget" discovery:latest="true" discovery:version="2.8.5.208" media="(OS:windows)" />
<Link href="https://onegetcdn.azureedge.net/providers/psl-1.0.0.210.package.swidtag" type="application/swid-tag+xml" rel="package" discovery:name="psl" discovery:latest="true" discovery:version="1.0.0.210" media="(OS:windows)" />
<Link href="https://onegetcdn.azureedge.net/providers/ChocolateyPrototype-2.8.5.130.package.swidtag" type="application/swid-tag+xml" rel="package" discovery:name="chocolatey" discovery:latest="true" discovery:version="2.8.5.130" media="(OS:windows)" />
<Link href="https://onegetcdn.azureedge.net/providers/nugetv2.feed.swidtag" type="application/swid-tag+xml" rel="feed" discovery:name="nuget" media="(OS:windows)" />
<Link href="https://onegetcdn.azureedge.net/providers/psl.feed.swidtag" type="application/swid-tag+xml" rel="feed" discovery:name="nuget" media="(OS:windows)" />
<Link href="https://onegetcdn.azureedge.net/providers/chocolateyprototype.feed.swidtag" type="application/swid-tag+xml" rel="feed" discovery:name="chocolatey" media="(OS:windows)" />
</SoftwareIdentity>
Run Code Online (Sandbox Code Playgroud)
复制以下表单的 URLhttps://onegetcdn.azureedge.net/providers/nuget-X.X.X.XXX.package.swidtag
目前是https://onegetcdn.azureedge.net/providers/nuget-2.8.5.208.package.swidtag
在浏览器中打开此 URL,您将收到以下 XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SoftwareIdentity xmlns="http://standards.iso.org/iso/19770/-2/2015/schema.xsd" xmlns:discovery="http://packagemanagement.org/discovery" xmlns:sha512="http://www.w3.org/2001/04/xmlenc#sha512" name="nuget" versionScheme="multipartnumeric" media="(windows)" tagVersion="1" version="2.8.5.208" uniqueId="nuget.2.8.5.208">
<Meta providerName="nuget" providerVersion="2.8.5.208" summary="NuGet provider for the OneGet meta-package manager" />
<Link href="https://onegetcdn.azureedge.net/providers/Microsoft.PackageManagement.NuGetProvider-2.8.5.208.dll" type="application/octet-stream" rel="installationmedia" discovery:targetFilename="Microsoft.PackageManagement.NuGetProvider.dll" discovery:type="assembly" media="(OS:windows)" />
</SoftwareIdentity>
Run Code Online (Sandbox Code Playgroud)
您需要来自 onlyhref
属性的 URL 。
此 URL 允许您下载当前.dll
适用于 PowerShell 的 NuGet 提供程序的当前文件。目前是https://onegetcdn.azureedge.net/providers/Microsoft.PackageManagement.NuGetProvider-2.8.5.208.dll
下载后,导航到此.dll
文件并解锁(或使用Unblock-File
cmdlet)
将此文件复制到C:\Program Files\PackageManagement\ProviderAssemblies
您的离线机器上。
归档时间: |
|
查看次数: |
10804 次 |
最近记录: |