将位于本地程序包存储库中的NuGet程序包安装到新的Visual Studio解决方案中

时间:2018-08-24 18:01:09

标签: visual-studio-2017 nuget

更新:显然,提供过多的前同步码会增加混乱和清晰度,所以这是我的问题:

当当前解决方案中没有对本地软件包存储库(即不是中央NuGet存储库)的引用时,如何将它们添加到项目中,因此它们不会显示为“ “为解决方案管理软件包”窗口。

带有背景细节的原始照片:

我们使用一个本地的NuGet软件包文件夹,其中包含我们项目要使用的所有软件包。我们不希望其被任意更新或更改(即,不安装任何现有软件包或进行还原(如果可能))

我们最近已切换到VS2017,并正在从头开始构建我们的解决方案和项目。我们设置一个NuGet.Config指向本地包文件夹。它可以正常工作(例如,如果我们从NuGet中央存储库中将软件包测试安装到项目中,就会看到新的软件包安装在那里。)

但是,由于NuGet软件包当前未安装到解决方案中的任何项目中,因此NuGet会报告(通过Get-Package或GUI)未安装任何软件包。

这似乎意味着我们无法将包目录中的项目添加到适当的解决方案,而无需进入中央NuGet存储库,尽管它们在本地包文件夹中也可用!

我希望在存储库中看到该软件包,以便可以将它们添加到各自的项目中,并让NuGet为该项目创建packages.config文件(使用新格式)。

我是否真的需要从NuGet中央服务器重新安装软件包,只是要将它们添加到项目中?

从中央NuGet信息库进行安装实际上会覆盖本地信息库中的现有软件包。更重要的是,我们的一些软件包使用的版本在NuGet存储库中不再可用。

我们当前的解决方法是在解决方案中的一个项目中手动编辑packages.config文件,这将使软件包在“管理解决方案的软件包”窗口中可见。然后,我们只需在GUI中选择目标项目即可将软件包安装在实际的目标项目中(这会对目标项目的.csproj文件执行适当的更改)。然后,我们从原始项目中删除手工编辑的packages.config。

这使用的是VS 2017安装的NuGet 4.6。

非常感谢您的任何建议。

1 个答案:

答案 0 :(得分:2)

  

当在当前解决方案中没有对本地软件包存储库(即不是中央NuGet存储库)的引用时,如何将它们添加到项目中,因此它们在“管理软件包”中不显示为已安装解决方案”窗口。

不确定我是否完全正确理解了您的问题,否则请免费通知我。

要解决此问题,您可以为这些软件包创建本地供稿,以便可以在“管理解决方案的软件包”中查看那些软件​​包并将其添加到各自的项目中,并让NuGet为该项目创建packages.config文件即使您没有安装它们。

  • 将这些软件包.nupkg添加到本地存储库文件夹中(包括NuGet存储库中不再可用的那些版本)。
  • 进入Visual Studio,然后通过“工具”>“ NuGet程序包管理器”>“程序包管理器设置”打开“ NuGet设置”对话框。单击设置对话框中的“程序包来源”标签,然后单击左上角的plus图标以添加新的程序包来源。
  • 输入本地存储库的名称和源。该名称可以是任何字符串,并且将是在Visual Studio的NuGet程序包管理器中显示的名称。

enter image description here

现在,您已经添加了本地程序包源,您将能够通过控制台或“程序包对话框”,从“程序包源”菜单中选择它,以通常的方式在Visual Studio中使用本地存储库:

enter image description here

希望这会有所帮助。