Mono.Cecil ライブラリを利用するPowerShellスクリプトを作成しています。スクリプト内からパッケージを使用できるようにするには、どのようにパッケージをインストールしますか?ありがとう!
(記録のために、これを尋ねる前にグーグルを試しましたが、出てきたのは [〜#〜] pmc [〜#〜] とVisualStudioに関する結果だけでした。これはこれには関係ありません。質問。)
PowerShellの〜5.xバージョンには、デフォルトでnugetパッケージソースが含まれていますが、機能しません。
PS > Get-PackageSource
Name ProviderName IsTrusted Location
---- ------------ --------- --------
nuget.org NuGet False https://api.nuget.org/v3/index.json
PSGallery PowerShellGet False https://www.powershellgallery.com/api/v2/
Unregister-PackageSource -Source nuget.org
およびRegister-PackageSource -Location https://www.nuget.org/api/v2 -name nuget.org -Trusted
の場合、Visual Studio内ではなく、PowerShellからInstall-Package
だけでnugetパッケージをインストールできました。 this SO answer からアイデアを得ました。
Nuget.orgソースのv3バージョンを削除することで、他にどのような悪影響が生じる可能性があるかはわかりませんが、しばらくこの方法で実行しており、問題はないようです。マイレージは異なる場合があります。
別の方法として、これを行う必要がある厄介な方法であっても、nuget.exeをプルダウンすることでジョブを実行する例を示します。
function Install-InvokeOracleSQL {
$ModulePath = (Get-Module -ListAvailable InvokeSQL).ModuleBase
Set-Location -Path $ModulePath
if ($PSVersionTable.Platform -ne "Unix") {
$SourceNugetExe = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
$TargetNugetExe = ".\nuget.exe"
Invoke-WebRequest $sourceNugetExe -OutFile $targetNugetExe
.\nuget.exe install Oracle.ManagedDataAccess
Remove-Item -Path $TargetNugetExe
} elseif ($PSVersionTable.Platform -eq "Unix") {
nuget install Oracle.ManagedDataAccess.Core -Version 2.12.0-beta2
}
}
ソースを指定することで、PowerShell 6(コア)にパッケージをインストールできました。
PS > install-package gudusoft.gsqlparser -source https://www.nuget.org/api/v2