web-dev-qa-db-ja.com

Ubuntu 14.04でdotnet CLIを使用して新しいNuGetパッケージソースを登録するにはどうすればよいですか?

UbuntuのDockerでWeb APIをホストすることを目標に、Ubuntu 14.04で.NET Core 1.1.0を実行しています。 Ubuntuでパッケージをビルドしたいのですが、NuGet参照の一部は内部のNuGetリポジトリ(Artifactory)でホストされています。これは、パッケージソースを追加した後、Windows上のVS2015で正常に動作しますが、実行すると:

dotnet restore

ubuntuでは、パブリックNuGetリポジトリでホストされているパッケージは正常にダウンロードされますが、Artifactoryのパッケージは失敗します。

error: Unable to resolve 'Mercury.BaseModel (>= 1.1.0)' for '.NETCoreApp,Version=v1.1'.

\home\<user>\.nuget\NuGet\NuGet.ConfigでNuGet構成ファイルを見つけ、次のようにArtifactoryリポジトリを追加しました。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="Artifactory-DEV" value="https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local" protocolVersion="3"/>
  </packageSources>
</configuration>

しかし、私はまだ同じエラーを受け取っています。

.NET Core SDKをインストールした後、NuGet自体は機能しません。前述のdotnet restoreを使用しています-dotnet CLIで編集する必要がある同様の構成(NuGetを使用している必要がありますか)または他に必要なものがありますか?する?

ありがとう!

15
Peter

結局、私が見逃した2つの問題をすばやく特定しました。

  1. 私はSudo -iは、問題を解決しようとしてrootとして実行します。その結果、\ homeフォルダーでセットアップしたNuGet構成が選択されませんでした。
  2. 自分のログオンに戻ると、エラーが発生しました。

    error: Unable to load the service index for source https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local.
    error:   The content at 'https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local' is not a valid JSON object.
    error:   Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    

Artifactory NuGetリポジトリがNuGet v2に準拠したXMLを返すことがわかりました。リポジトリをv2として設定するように構成ファイルを変更しましたが、現在は機能しています。そのため、上から、ファイルを編集します

\home\<user>\.nuget\NuGet\NuGet.Config

新しいレポジトリURLを追加し、バージョン設定を正しく取得します。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="Artifactory-DEV" value="https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local" protocolVersion="2"/>
  </packageSources>
</configuration>
10
Peter

Dotnet CLIの復元では、ソースフィードのURLとして-sを使用できます。したがって、nuget.orgへのリモートリポジトリを備えたArtifactoryがある場合。

dotnet restore -s https://artifactory.example.com/api/nuget/nuget.org

参照 :

9