kpm恢复无法findSystem.Net.Http

做一些与Docker的工作,尝试创build一个ASP.NET 5容器,但是当它恢复包时,kpm返回OK,除了:

Unable to locate System.Net.Http 

我也尝试与Microsoft.Net.Http.Client交换,但得到了类似的回应。

这是我的project.json文件:

 { "webroot": "wwwroot", "version": "1.0.0-*", "exclude": [ "wwwroot" ], "packExclude": [ "**.kproj", "**.user", "**.vspscc" ], "dependencies": { "Microsoft.AspNet.Server.IIS": "1.0.0.0-beta2-10877", "Microsoft.AspNet.Diagnostics": "1.0.0.0-beta2-11936", "Microsoft.AspNet.Mvc": "6.0.0.0-beta2-12332", "Microsoft.Framework.ConfigurationModel.Json": "1.0.0.0-beta1-10525", "System.Net.Http": "4.0.0.0" }, "frameworks": { "aspnetcore50": { "dependencies": { } } } } 

这是我的Dockerfile:

 FROM microsoft/aspnet COPY /app/approot/src/Docker.Web /app WORKDIR /app RUN ["kpm", "restore"] EXPOSE 5004 ENTRYPOINT ["k", "kestrel"] 

我只需要访问一个WebClient或类似的,我是否正确的方式?

UPDATE

好吧,我很确定这与我指向的NuGet源有关。 我尝试更新Kpm恢复使用MyGet的aspnetrelease饲料代替。 现有的问题是固定的,但现在我得到:

 Unable to locate Newtonsoft.Json >= 6.0.6 

Aaaaaaaaaaaaargh

将我的Dockerfile运行命令更改为:

 RUN ["kpm", "restore", "-s", "https://www.myget.org/F/aspnetrelease/api/v2"] 

与更新kpm相关的东西,我不得不添加这个文件(NuGet.Config):

 <?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="AspNetVNext" value="https://www.myget.org/F/aspnetvnext/api/v2/" /> <add key="nuget.org" value="https://www.nuget.org/api/v2/" /> </packageSources> <disabledPackageSources /> <activePackageSource> <add key="nuget.org" value="https://www.nuget.org/api/v2/" /> </activePackageSource> </configuration> 

/root/.config/NuGet/NuGet.Config 。 既然是Linux,大小写文件path和文件名就很重要。

成功!

更新Dockerfile运行命令到:

 RUN ["kpm", "restore", "-s", "https://www.myget.org/F/aspnetrelease/api/v2", "-f", "https://nuget.org/api/v2"] 

这将默认设置为aspnetrelease MyGet供稿,回退到NuGet。

有一件事要注意:更新这个命令并运行在同一个Docker主机上不起作用,并返回了一个非常奇怪的Linux错误。 我删除并重新创build了Docker主机,重新构build了我的映像,并最终运行。

希望这将有助于别人。