我有一个项目,它反过来引用官方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所在位置的一个目录中。
答案 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来托管您的软件包。