【问题标题】:ASP.NET vNext package restore not workingASP.NET vNext 包还原不起作用
【发布时间】:2015-03-24 21:58:09
【问题描述】:

我在家中将我的新 vNext 项目签入到 TFS 中,它工作正常。

然后我开始工作(带有代理等的企业环境)并获得最新信息。它把我的项目拉了下来,我启动了解决方案。

我做了一个构建,但它失败了。原因是它没有恢复我的 nuget 包。

  • 我已经尝试编辑project.json文件,它说保存时恢复成功,但不是。

  • 我尝试获取新的 nuget 包,它说成功并添加了引用,但它说它丢失(感叹号)。

  • 我尝试以管理员身份运行 VS 2015。

  • 我已尝试手动创建 ..users/me/.kpm/packages 文件夹。 (这是我相信软件包下载到的地方)

  • 我尝试了不同的代理。

我可以很好地查看 nuget 中的包,我也可以在 .json 文件中获得很好的智能感知。这让我觉得这不是代理问题。

这些都没有奏效。还有其他想法吗?

附录

project.json

{
    "webroot": "wwwroot",
    "version": "1.0.0-*",
    "exclude": [
        "wwwroot"
    ],
    "packExclude": [
        "node_modules",
        "bower_components",
        "**.kproj",
        "**.user",
        "**.vspscc"
    ],
    "dependencies": {
        "Microsoft.AspNet.Server.IIS": "1.0.0-beta2",
        "Microsoft.AspNet.Mvc": "6.0.0.0-beta2"
    },
    "frameworks": {
        "aspnet50": { },
        "aspnetcore50": { }
    }
}

【问题讨论】:

  • 首先要检查:在 VS 中转到工具 -> 选项 -> NuGet 包管理器 -> 包源并确保选中 nuget.org。如果这不能解决问题,请告诉我哪些软件包带有感叹号,如果可能,请分享project.json 文件
  • Nuget.org 肯定被检查并设置为:nuget.org/api/v2 我也添加了我的 project.json。我的两个依赖项都显示为感叹号。如果有帮助,我会通过 Visual Studio 发送一张皱眉的脸,并附上一些截图:)
  • 你在 MVC 包名中有一个额外的0。应该是6.0.0-beta2nuget.org/packages/Microsoft.AspNet.Mvc/6.0.0-beta2
  • 是的,一定是我在摆弄配置时弄错了。不幸的是,将其更改为 "Microsoft.AspNet.Mvc": "6.0.0-beta2" 并没有奏效。
  • 您还可以添加包还原的输出吗?输出窗口 -> 包管理器日志

标签: nuget visual-studio-2015 asp.net-core


【解决方案1】:

好的,我成功了,非常感谢@Victor Hurdugaci 帮助我。

我解决此问题的步骤如下:-

  • 将 kpm 添加到路径,对我来说,我在这里找到它:C:\Users\MyUser\.kre\packages\KRE-CLR-x86.1.0.0-beta2\bin(您可能想检查您的项目属性以查看您需要哪个版本,我不确定它是否重要)
  • 打开一个 cmd(确保在添加到路径之前关闭它)
  • cd 到你的项目文件夹(你的 project.json 的位置)
  • 运行kpm restore -p http:yourproxyurl:1234(其中yourproxyurl 是您的代理地址,1234 是您的端口)

此时它确实将大量的好东西下载到C:\Users\MyUser\.kpm\packages 我回到 Visual Studio 并进行了构建,但仍然失败。

作为最后一步,我必须打开project.json 文件并简单地保存它,甚至无需进行任何更改。至此,我的参考资料更新了,一切都很好,它会成功构建。

【讨论】:

    【解决方案2】:

    当我的 nuget 包源中存在无法访问的服务器地址时,我在还原包时遇到了类似的问题。在这种情况下,取消选中我的包源中无法访问的服务器就可以了。

    这种行为对我来说似乎是一个错误。它在一台无法访问的服务器上一直失败,并且无法尝试使用另一台官方 nuget 服务器恢复软件包。这也会导致 Bower 包恢复失败。

    【讨论】:

      【解决方案3】:

      我正在使用 beta8 进行开发,我不得不在 beta 版本之间切换几次,最适合我的解决方案是为 VNext 软件包添加新的提要:

      • www.myget.org/F/aspnetmaster/api/v2/ 此提要包含 每个里程碑的包的发布版本,例如, 1.0.0-alpha4。
      • www.myget.org/F/aspnetvnext/api/v2/ 此提要包含带有内部版本号的每晚开发包,例如, 1.0.0-beta1-10435。

      更新新的提要后,我打开并保存我的项目文件“project.json”,引用会自行更新。

      如果您需要了解如何在您的 Windows 或 *Nix 机器上添加此新提要,请查看下一篇文章: https://github.com/aspnet/Home/wiki/Configuring-the-feed-used-by-dnu-to-restore-packages

      一篇关于 dnx 项目如何进行的一般性文章非常有用: http://docs.asp.net/en/latest/dnx/projects.html

      【讨论】:

        猜你喜欢
        • 2012-02-19
        • 1970-01-01
        • 1970-01-01
        • 2017-10-09
        • 1970-01-01
        • 2015-10-11
        • 2018-06-12
        • 1970-01-01
        相关资源
        最近更新 更多