更新:显然,提供过多的前同步码会增加混乱和清晰度,所以这是我的问题:
当当前解决方案中没有对本地软件包存储库(即不是中央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。
非常感谢您的任何建议。
答案 0 :(得分:2)
当在当前解决方案中没有对本地软件包存储库(即不是中央NuGet存储库)的引用时,如何将它们添加到项目中,因此它们在“管理软件包”中不显示为已安装解决方案”窗口。
不确定我是否完全正确理解了您的问题,否则请免费通知我。
要解决此问题,您可以为这些软件包创建本地供稿,以便可以在“管理解决方案的软件包”中查看那些软件包并将其添加到各自的项目中,并让NuGet为该项目创建packages.config文件即使您没有安装它们。
.nupkg
添加到本地存储库文件夹中(包括NuGet存储库中不再可用的那些版本)。plus
图标以添加新的程序包来源。现在,您已经添加了本地程序包源,您将能够通过控制台或“程序包对话框”,从“程序包源”菜单中选择它,以通常的方式在Visual Studio中使用本地存储库:
希望这会有所帮助。