.NET Core RC2:使用包的本地派生

时间:2016-06-16 22:16:34

标签: .net nuget .net-core .net-core-rc2 project.json

我有一个项目,它反过来引用官方nuget' d库(forecast.io)的分支。我已经安排了我的global.json来找到我的lib副本,但是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"和#34; 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 个答案:

答案 0 :(得分:1)

创建您自己的本地或远程Nuget Feed对于这种情况将是一个更可靠的解决方案。我自己这样做是为了管理我发布的测试版软件包,它的效果非常好。

要在本地执行此操作,您只需要一个空文件夹和Nuget CLI。如果您的文件夹是C:\Nuget,请运行

nuget add package.nupkg -source C:\Nuget

将分叉包添加到本地Feed。为确保不存在任何混淆,请使用与官方软件包不同的名称或版本号构建分叉软件包。

然后,将Nuget配置为使用本地Feed作为源:

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

完成所有设置后,请更新您的project.json以引用您的分叉包并再次运行dotnet restore以下拉本地副本。

如果您需要在多台计算机上或团队环境中恢复软件包,您可以设置自己的NuGet服务器或使用MyGet.org来托管您的软件包。