使用NuGet将解决方案中的“所有”包推送到共享驱动器?

3

我最近设置了一个共享驱动器,用作我的私人Nuget存储库。

我希望将我的packages目录中的所有nupkg文件推送到我的共享驱动器。

我成功地找出了这个命令:

  nuget.exe push ..\packages -source c:\testme

现在虽然这应该可以工作,但在我的包目录下,每个nupkg文件都在自己的目录中,所以它似乎没有递归搜索,我尝试了-s和/s,希望这会起作用,但什么也没发生。

它产生以下错误:

     File does not exist (..\packages).

我在我的VS解决方案中的packages目录下看到了所有的nupkg文件,因此我希望将它们推送到我的私有仓库。

我不想为每个文件都执行以下操作。

  nuget.exe push -source c:\testme ..\packages\Antlr.Unofficial.3.4.1.0\Antlr.Unofficial.3.4.1.0.nupkg

有更好的方法吗?


我还注意到有一个PowerShell脚本可以在我的私有仓库上镜像nuget.org,但这并不是我想要的,可能会有太多的包。我只想推送我正在使用的包。另外,当我添加新的包时,能够同步它将是很好的。 - Martin
1个回答

4
我使用一个简单的批处理文件将所有引用的包复制到共享文件夹中。
--- syncnuget.bat ---
for /f "usebackq tokens=*" %%n in (`dir /b /s packages\*.nupkg`) do copy "%%n" C:\Path\To\Repository /y

只需从解决方案根目录中运行此批处理文件。

拥有所有软件包的本地副本始终是一个好主意,因为正如我们最近所看到的那样,NuGet有时会崩溃,这可能会影响开发或持续构建。


谢谢,正是我想要的。 - Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接