如何清理包括nuget包

时间:2019-09-02 14:46:17

标签: visual-studio-2017 nuget

如果我想保留我的代码的备份,而不希望备份中的所有库和nuget库,我该怎么做?

我在解决方案上运行干净,我发现bin和obj文件夹中仍然存在DLL和EXE。好的,我可以手动删除这些文件夹。我可以删除将删除所有nuget库的package文件夹,但是如果我想还原,我的解决方案是否会重新下载该项目所需的所有nuget软件包?恐怕无法验证该理论,并且从我读到的内容来看,元数据和package文件夹中的其他内容会给我带来麻烦。如果我在删除bin和obj文件夹后使用zip压缩,则zip压缩为450MB。如果我进入zip并删除了package文件夹,我看到它只有25MB。它似乎全部在Package文件夹中。从ReactJS的角度来看,我可以进行构建并清除所有内容,并且当我想为现有项目重新导入时,可以运行安装。 Visual Studio 2017没有这样的东西吗?如果仅在备份前删除软件包文件夹,是否可以轻松恢复?

2 个答案:

答案 0 :(得分:0)

  

如果我想保留我的代码的备份,而不想要所有   备份中的库和nuget库,该怎么办?

您以哪种方式备份代码?根据您的描述,您似乎正在尝试 zip 解决方案并将其存储在某处进行备份。如果是这样,您可以在压缩解决方案之前删除bin, obj and packages文件夹。 (您甚至可以删除.vs文件夹)

  

Visual Studio 2017是否没有类似的内容?我会吗   如果我在删除包文件夹之前就能够轻松恢复   备份吗?

有两种方法来管理VS中的nuget软件包:packages.configPackageReference格式。由于您的解决方案中有“ packages”文件夹,所以我认为您使用packages.config格式。有关您的项目使用的nuget软件包的信息在packages.config和xx.csproj文件中定义。删除packages文件夹后,可以在packages.config文件和xx.csproj文件的帮助下轻松恢复软件包。

导入已在VS中删除bin, obj, packages文件夹的解决方案,右键单击Solution Explorer中的解决方案,然后选择Restore nuget packages选项,这将帮助安装解决方案所需的软件包根据您的packages.config文件。因此,答案是对Will I be able to recover easily

此外:

1。安装一个nuget软件包时,它将首先将其安装在global-packages文件夹中,然后将其复制到您的解决方案中。因此,在同一台机器上,如果先压缩解决方案,然后再删除解决方案中的packages文件夹。恢复时,它将首先查找缓存,如果缓存中没有必需的nuget软件包,它将从软件包源(例如nuget.org)安装它们。您需要在VS设置中启用这些two options

2。如果您使用PackageReference格式,则程序包将存储在%userprofile%\.nuget\packages中,而不存储在解决方案中。通过压缩解决方案并将其复制到远程服务器,您可以轻松地恢复软件包。

3。除了VS中的restore nuget packages选项之外,您还可以使用nuget.exe,msbuild.exe之类的命令行...更多详细信息,请参见here

答案 1 :(得分:0)

为什么不仅仅使用某些源代码控制来做到这一点?

如果您将Team Foundation Server与TFVC或Git一起使用,它将做到这一点。您将所有代码都置于版本控制之下,而无需dll,bin,构建工件,程序包或任何东西。没有所有那些繁琐的,不必要的事情,只需重新构建解决方案就可以重新创建。

当然,您将享受将代码置于源代码控制下的所有优点:即,不仅拥有代码的备份,而且还拥有迄今为止所做的所有更改。

只是说