安装包与更新包的区别是:更新包与安装包的区别在于,更新包仅包含了需要更新的文件,而安装包包含了全部问题。有的软件每次都提供安装包的原因是进行了较大的修改,更新包无法完成对应的需求。
一、安装包与更新包的区别
更新包与安装包的区别在于,更新包仅包含了需要更新的文件,而安装包包含了全部问题。有的软件每次都提供安装包的原因是进行了较大的修改,更新包无法完成对应的需求。(例如功能增加,界面变更)也可以将更新包理解为windows的补丁,安装包理解为windows xp | window 7。安装包指全新安装。更新包包含更新,一般做升级只用。更细化一点的解释是:
比方说一个软件,总共包含50个工程,那么编译出来就有50个dll,那么它的安装目录下就包含50个dll,还有可能包含一些配置文件或者图片等。
安装过程,其实就是将这50个dll和那些附属文件,从exe(此处以比较常见的exe举例哈,当然还有其他的msi安装程序等)中解压出来,并在你安装时所选择的路径下复制进去,然后加上一些注册表的改动。
更新过程,这个更新的exe中仅包含一部分有功能更新的工程所产生的dll,比如仅仅有10个。那更新的时候仅需要判断你的本地已经装有本软件,然后将这10个新的dll直接覆盖在原先的目录下就可以使用了。这样就大大减小了下载成本,和安装进度,同时又可以完美升级使用新功能,或者修复老版本的bug。
安装包和更新包是可以整合为一个的。每个installshield工程都会有一个少数的product ID,所以在运行exe的时候,通过判断这个productID是否已经存在,就可以选择是直接安装,还是提示更新。
个人认为,选择是整合为一个,还是单独采用升级包,跟所安装的软件更新频率,完整的安装包大小,有直接关系。
更新频率高+安装包大,50M以上,甚至几百M,这种情况下,频率高,意味着相对来说每次修改的工程量少,那么所需要更新的文件就会少,那肯定会选择更新包。因为没有一个用户愿意每2个月就去下载一个几百兆的软件去更新一下。这时候更新包可能只是几M甚至几K,下载和安装都是分分钟的事情,那大家还是乐意去更新一下体验新功能的。
更新频率低+安装包大,这种情况下,意味着更新的工程量相对会多,而且必然是有重大功能的更新和改动,那有可能制作的更新包和安装包的大小就相差无几。这时候肯定会选择直接使用完整的安装包,一个是因为对用户来说,使用更新包优势不明显,另一个是,对企业来说,方便软件版本管理和控制。分别制作一个安装包和更新包,就意味着需要分别维护两套installshield脚本。
如果安装包本身就很小,比方说才10M,无论频率高低,也会选择完整的安装包。理由就如上条所说的。
延伸阅读:
二、在 Windows 沙盒上安装 winget
Windows 沙盒提供了一个轻型桌面环境,可以安全地独立运行应用程序。 安装在 Windows 沙盒环境中的软件保持“沙盒”状态,并独立于主机运行。 Windows 沙盒不包含 winget,也不包含 Microsoft Store 应用,因此你需要从 GitHub 上的 winget 版本页下载最新的 winget 包。
要在 Windows 沙盒上安装 winget 的稳定版本,请从 Windows PowerShell 命令提示符执行以下步骤:
PowerShell
$ProgressPreference=’Silent’
Invoke-WebRequest -Uri https://github.com/microsoft/winget-cli/releases/download/v1.3.2691/Microsoft.Desk较好AppInstaller_8wekyb3d8bbwe.msixbundle -OutFile .\Microsoft.Desk较好AppInstaller_8wekyb3d8bbwe.msixbundle
Invoke-WebRequest -Uri https://aka.ms/Microsoft.VCLibs.x64.14.00.Desk较好.appx -OutFile Microsoft.VCLibs.x64.14.00.Desk较好.appx
Add-AppxPackage Microsoft.VCLibs.x64.14.00.Desk较好.appx
Add-AppxPackage Microsoft.Desk较好AppInstaller_8wekyb3d8bbwe.msixbundle