.NET 核心 RC2 : use local fork of a package

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

我有一个项目,该项目又引用了官方 nuget 库 (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”和“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 所在的目录之上。

最佳答案

创建您自己的本地或远程 Nuget 提要将是针对这种情况的更可靠的解决方案。我自己这样做是为了管理我发布的软件包的 beta 版本,而且效果非常好。

要在本地执行,您只需要一个空文件夹和 Nuget CLI .如果你的文件夹是C:\Nuget,运行

nuget add package.nupkg -source C:\Nuget

将您的 fork 包添加到本地提要。为确保没有任何混淆,请使用与官方包不同的名称或版本号构建您的 fork 包。

然后,配置 Nuget 以使用您的本地提要作为源:

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

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

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

关于.NET 核心 RC2 : use local fork of a package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37870257/

相关文章:

c# - 计算不同的结果-方法 PointToScreen 获取桌面(屏幕)相关控件的点

.net - nuget没有添加引用

c# - Jenkins Windows slave 上的 dotnet restore - 值不能为空

docker - .NET Core Docker Container在Kubernetes中不起作用

c# - 处理 StdOut 的内容

c# - Windows 服务在进入休眠或休眠模式/从 sleep 或休眠模式唤醒时如何表现?

.net - 从 html POST 检索错误响应

.net - 在 powershell 中加载 .NetCore DLL

.net - 将 DataContext 对象作为 'ref' 参数传递有什么缺点吗?

c# - 从 Nuget 包管理器控制台内的解决方案资源管理器运行 powershell 脚本