.NET Core RC2:使用本地包的分支

3

我有一个项目,它引用了官方nuget库(forecast.io)的一个分支。我已经配置了我的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 上一级目录。


你尝试过 "Forecast.io": { "target": "project" } 吗? - svick
这样做会导致“无法解析'Forecast.io'”(我已经对project.json进行了更改) - 看起来是一个潜在的进步步骤,假设global.json被忽略了。 - Malachi
当您将当前项目添加到global.json中时会发生什么? - svick
它似乎没有任何影响。我是不是犯了一个愚蠢的错误,意外地禁用了global.json?我已经编辑了原帖以反映global.json的更改。 - Malachi
1个回答

2
创建自己的本地或远程Nuget feed将是更可靠的解决方案。我自己管理发布的beta版本的包时也这样做,效果非常好。
要在本地创建Nuget feed,您只需要一个空文件夹和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来托管你的包。

这个很好用,几乎完全按照说明(对我来说nuget add不存在,所以我只是手动复制了nupkg)。然而,我担心a)project.json中不可避免的版本名称变化和b)需要每台机器进行设置 - 尽管不是非常巨大。 - Malachi
如果您想使用CLI,可以从上面的链接下载nuget.exe并将其放置在您的PATH中。没错,除非您将软件包放在共享网络位置,否则这对团队来说并不是很好用。在这种情况下,更好的解决方案是MyGet! - Nate Barbettini
我希望有一个更"内联"的解决方案,比如一个正常工作的global.json文件。与此同时,我一直在使用符号链接... 这个方法可以得到结果,但可能有点过于hack了... 话虽如此,您的建议似乎符合最佳实践。 - Malachi
让我们在聊天中继续讨论 - Malachi
1
使用您的解决方案。我也将NuGet.Config包含在靠近global.json的文件夹中,以自动配置myget.org源,因为nuget/dotnet restore可以自动发现它(很方便!) - Malachi
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接