【问题标题】:How to disable NuGet package restore and bring in packages locally?如何禁用 NuGet 包还原并在本地引入包?
【发布时间】:2014-08-08 16:03:46
【问题描述】:

如何让 NuGet 重新生成/创建包含所有 .dll localASP.NET 项目的“packages”文件夹?我知道这违背了“启用包还原”的传统用法,但它是一个先决条件,超出了本次对话的范围。

不幸的是,在声明我们无法使用它之前,我已经走上了启用恢复的道路。现在我需要在本地重新生成这些包,但我似乎无法弄清楚它是如何完成的。有 1,000 个文档介绍了如何删除 包并启用 NuGet 包还原,但没有关于如何回到每个解决方案拥有一个“包”文件夹的文档。实际上,我必须将该包签入 TFS,并在构建时为解决方案准备好所有可用的东西。

我已经禁用了“启用 NuGet 包还原”并重新构建了,但是依赖项并没有在我能告诉的任何地方引入本地。

【问题讨论】:

    标签: asp.net visual-studio nuget nuget-package-restore


    【解决方案1】:

    因此,您最初为您的解决方案启用了基于 MSBuild 的程序包还原,您已“禁用”它,现在您想要还原程序包并将它们添加到版本控制中。

    如果您安装了最新版本的 NuGet,2.7 或更高版本应该可以,那么 Visual Studio 应该在您构建解决方案时自动恢复包。

    现在,如果您有最新版本的 NuGet 并且 Visual Studio 在您构建时没有恢复包,那么一种可能性是您的解决方案中仍然有 .nuget/NuGet.targets 文件。如果此文件仍然存在,则 Visual Studio 假定您正在使用基于 MSBuild 的包还原,并且不会在您构建时还原包。

    另一种恢复包的方法是下载NuGet.exe并运行:

    NuGet.exe restore YourSolution.sln
    

    还有some instructions on NuGet's web site 介绍了如何从基于 MSBuild 的包还原迁移到更新的自动包还原。本迁移指南中也可能影响 TFS 的一件事是 NuGet.config 文件中的 disableSourceControlIntegration 设置。如果不是 .nuget/NuGet.config 文件本身,您可能希望删除该设置。

    【讨论】:

    • 结果是您的答案与stackoverflow.com/questions/9270597/… 结合使我找到了解决方案。我误会的一件事是 packages 文件夹一直存在。我只是忘记了它在解决方案资源管理器中不可见,而是在 Windows 资源管理器中的解决方案旁边
    【解决方案2】:

    请到工具->库包管理器->包管理器设置

    包管理器 - 常规

    请取消选中复选框(允许自动下载...) vs 2.13 默认情况下它将启用。 vs 2012 默认禁用

    【讨论】:

      【解决方案3】:

      您可以选择您的参考,按 F4 并将 Copy Local 属性设置为 True。

      【讨论】:

        猜你喜欢
        • 2016-03-13
        • 1970-01-01
        • 2021-03-20
        • 2012-10-27
        • 1970-01-01
        • 1970-01-01
        • 2014-08-14
        • 1970-01-01
        • 2021-01-08
        相关资源
        最近更新 更多