nugetを用いてpkgのinstallに失敗する

nuget経由でpkgのinstallに失敗する

1. 背景

  • nuget pkgを管理するサーバにアクセスできないためエラーとなる

    PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -Version 3.6.0
    
    
    '.NETFramework,Version=v4.7.2' を対象とするプロジェクト 'MyApp' に関して、パッケージ 'Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0' の依存関係情報の収集を試行しています
    Install-Package : ソース https://nuget.com のサービス インデックスを読み込めません。
      この要求の送信中にエラーが発生しました。
      接続が切断されました: SSL/TLS のセキュリティで保護されているチャネルに対する信頼関係を確立できませんでした。
      検証プロシージャによると、リモート証明書は無効です。
    発生場所 行:1 文字:1
    + Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -V ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception
        + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
    
    経過した時間: 00:00:07.5981154
    PM> 
  • 下記のような設定だとpkgの取得に失敗する

    • 3https://api.nuget.org/v3/index.json が正しいURL
    • 1https://nuget.comではpkgの管理が実施されていないためエラーとなる
    my-pc-asus-1@LAPTOP-IJIHQME2 MINGW64 ~/Desktop/git/MyApp (master)
    $ dotnet nuget list source
    登録されているソース:
      1.  Package source [有効]
          https://nuget.com
      2.  Microsoft Visual Studio Offline Packages [有効]
          C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
      3.  nuget [有効]
          https://api.nuget.org/v3/index.json
    

2. 解決手法

  • 3.nugethttps://api.nuget.org/v3/index.json を参照するように設定変更を実
    • dotnet nuget disable source を使用して3.nuget以外の設定を無効化する
    • dotnet nuget remove source を使用して3.nuget以外の設定を削除する

有効/無効の切り替え

my-pc-asus-1@LAPTOP-IJIHQME2 MINGW64 ~/Desktop/git/MyApp (master)
$ dotnet nuget enable source "Package source"
名前 Package source のパッケージ ソースが正常に有効にされました。

my-pc-asus-1@LAPTOP-IJIHQME2 MINGW64 ~/Desktop/git/MyApp (master)
$ dotnet nuget list source
登録されているソース:
  1.  Package source [有効]
      https://nuget.com
  2.  Microsoft Visual Studio Offline Packages [無効]
      C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
  3.  nuget [有効]
      https://api.nuget.org/v3/index.json

my-pc-asus-1@LAPTOP-IJIHQME2 MINGW64 ~/Desktop/git/MyApp (master)
$ dotnet nuget disable source "Package source"
名前 Package source のパッケージ ソースが正常に無効にされました。

my-pc-asus-1@LAPTOP-IJIHQME2 MINGW64 ~/Desktop/git/MyApp (master)
$ dotnet nuget list source
登録されているソース:
  1.  Package source [無効]
      https://nuget.com
  2.  Microsoft Visual Studio Offline Packages [無効]
      C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
  3.  nuget [有効]
      https://api.nuget.org/v3/index.json
この記事をシェア

弊社では、一緒に会社を面白くしてくれる仲間を募集しています。
お気軽にお問い合わせください!