私有NuGet仓库:如何避免输出目录留存冗余nupkg文件?
解决NuGet安装后保留nupkg文件的问题
这个问题我之前也碰到过,nuget install默认确实会在提取目录里留下nupkg副本,不过有两种靠谱的解决办法:
方法一:使用
nuget extract命令替代nuget install
这是最直接的方案,因为nuget extract就是专门用来提取nupkg包内容的命令,它不会在输出目录中保留原nupkg文件。把你原来的命令换成下面这个:nuget extract testspec -Source <url> -OutputDirectory "c:\temp"执行后,
c:\temp下会直接生成testspec文件夹(如果需要指定版本可以追加-Version <版本号>参数),里面只有包的提取内容,不会有多余的nupkg文件。方法二:保留
nuget install,额外添加删除步骤
如果你因为某些原因必须使用nuget install命令(比如依赖install的其他特性),可以在命令执行完成后手动删除生成的nupkg文件。根据你使用的终端类型,命令如下:- Windows命令提示符(CMD):
nuget install testspec -Source <url> -Exclude -OutputDirectory "c:\temp" && del "c:\temp\testspec\testspec.nupkg" - PowerShell:
nuget install testspec -Source <url> -Exclude -OutputDirectory "c:\temp"; Remove-Item "c:\temp\testspec\testspec.nupkg" -Force
这里的
&&(CMD)或;(PowerShell)会保证只有当install命令执行成功时,才会执行删除操作。- Windows命令提示符(CMD):
补充说明
nuget install之所以会保留nupkg文件,是因为它的设计定位是“下载并安装包”,默认会将包文件保留在本地作为缓存(同时也会在输出目录留下副本)。而nuget extract则专注于“提取包内容”,完全不会保留原包文件,更符合你当前的需求。
内容的提问来源于stack exchange,提问作者Vipin
相关产品推荐
相关产品推荐

