2

公式のnuget'dライブラリ(forecast.io)のフォークを参照するプロジェクトがあります。lib のコピーを見つけるように global.json を配置しましたが、まだdotnet restoreフォークではなく公式バージョンにアクセスしているようです。

エラーが発生するため、この結論を出します。

Package Forecast.io 1.0.0 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Forecast.io 1.0.0 supports: net45 (.NETFramework,Version=v4.5)
One or more packages are incompatible with .NETCoreApp,Version=v1.0.

しかし、forecast.io の私のフォークは .NET 4.5 をターゲットにしておらず、"net40" と "netcoreapp1.0" だけです。

代わりにローカル フォークが確実に使用されるようにするにはどうすればよいですか?

ここに私のglobal.jsonがあります

{
  "projects": [
    "../../ext/forecast.io-csharp/src/Forecast.io",
    "MyOtherLibRefWhichWorks",
    "MyPrimaryProject"
  ]
}

そして、プライマリ プロジェクトの project.json からのスニペット:

  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0-rc2-3002702"
    },
    "MyOtherLibRefWhichWorks": "1.0.0-*",
    "Forecast.io": "1.0.0-*",

編集: global.json は完全に無視されるようです。これは、project.json が配置されている場所の 1 つ上のディレクトリにあります。

4

1 に答える 1

1

独自のローカルまたはリモートの Nuget フィードを作成すると、この状況ではより信頼性の高いソリューションになります。公開するパッケージのベータ版を管理するために自分でこれを行っていますが、非常にうまく機能しています。

ローカルで行うには、空のフォルダーとNuget CLIが必要です。フォルダが の場合はC:\Nuget、実行します

nuget add package.nupkg -source C:\Nuget

分岐したパッケージをローカル フィードに追加するには。混乱がないように、フォークされたパッケージを公式パッケージとは異なる名前またはバージョン番号でビルドしてください。

次に、ローカル フィードをソースとして使用するように Nuget を構成します。

nuget sources Add -Name LocalNuget -Source C:\Nuget

これがすべて設定されたらproject.json、フォークされたパッケージを参照するように更新し、dotnet restore再度実行してローカル コピーをプルダウンします。

複数のコンピューターまたはチーム環境でパッケージを復元する必要がある場合は、独自の NuGet サーバーをセットアップするか、MyGet.orgを使用してパッケージをホストできます。

于 2016-06-18T04:12:39.200 に答える