msix中断
在Windows上构建安装程序曾经很复杂。 这完全取决于您使用的安装工具以及代码的分发方式。 您可以将可执行文件包装在Zip文件中,还是使用古老的XCOPY? 当微软推出Windows Installer及其标准MSI格式时,事情变得更加简单。
Windows应用商店的到来以及Windows 8中全新的应用程序模型改变了一切。 结果,有两种部署代码的方式,以及两种可以运行代码的方式。 MSI应用程序仍然是台式机的默认设置,而Windows Store应用程序则需要新的APPX格式 。 Windows Store应用程序还与台式机应用程序在不同的上下文中运行,并带有一个新的沙箱,该沙箱可降低恶意软件损害系统的风险。
Project Centennial桌面桥跨越了鸿沟,将桌面应用程序带入Windows应用商店,使他们能够访问一些较新的UWP API,并支持APPX沙箱的有限版本。
Windows Store现在是重要的发行渠道,而台式机应用程序可以利用其功能,拥有两个不同的安装模型似乎是多余的。 微软似乎同意这种观点,因为它发布了可以在两种模式下以及在所有可用Windows平台上运行的新安装程序模型。
MSIX是现代世界的Microsoft安装程序
MSIX是新的Microsoft Installer ,是Windows 8时代APPX软件包格式的逻辑扩展。 它也是对熟悉的MSI的替代,它支持桌面应用程序,本地目录和安装自定义项。 应用程序部署到容器中,利用最新Windows版本中的应用程序隔离功能,不仅将其应用于APPX中的UWP,而且还应用于Win32,WPF和Windows窗体。
Microsoft将新安装程序及其新的打包应用程序方式视为企业应用程序开发的基础。 毕竟,MSI可以追溯到Windows XP时代,在那段时间并没有太大变化。 微软确实尝试通过其App-V流服务和虚拟化文件系统隔离来做一些不同的事情,但是这需要大量的服务器基础结构,并且可能难以供远程用户使用。 实际上,MSI和App-V的打包和分发都是由IT部门(而不是应用程序开发人员)处理的,从而导致新代码的脱节和复杂的分发链。
微软打算通过MSIX改变组织打包和部署内部和外部软件发行版的方式。 使用MSI,通常会对内部部署的应用程序进行解压缩,测试,并在重新打包并交付给用户之前进行任何需要的自定义。 这里存在丢失文件的风险,或在整个团队中复制配置错误的风险。 每当代码更新或底层操作系统更改时,您还需要重复整个过程。 这一过程与现代应用程序开发模型越来越不兼容, CI / CD系统会定期推送更新,而Windows 10的交付模型意味着每六个月进行一次重要的Windows更新。
使用MSIX打包和部署应用程序
通过使用MSIX打包软件,开发人员可以在构建过程中创建其初始应用程序包,而IT团队则可以在将文件签名以通过桌面部署的Intune或私有实例进行分发之前,向MSIX添加自定义程序包。适用于UWP应用程序的Microsoft Windows应用商店。
MSIX安装模型优于MSI和APPX。 MSX使您可以一键式卸载APPX,它还支持文件的单实例存储。 在多用户PC或应用程序使用公共库的地方,文件仅存储一次,仅一次,以确保优化磁盘空间使用。 下载还可以利用块级差异更新来减少带宽需求,这可以帮助支持连接受限的远程用户。 MSIX还可以自动更新非Windows Store应用程序,从而以静默方式或通过用户提示为所有代码提供类似于Windows Store的体验。
构建MSIX安装程序相对简单。 安装是声明式的,由清单文件控制。 部署后,Windows将处理所有其他事情:安装文件,管理更新以及在卸载应用程序时删除文件。 Windows还可以确保应用程序完整性,提供防篡改功能以及使用应用程序包签名来确保从受信任的来源提供更新和安装。 与清单一起,MSIX安装程序包括签名和代码完整性数据,以及用于管理差异安装和防止应用程序篡改的框图。
MSIX还可以处理向不同的设备和不同的OS安装交付不同的资产。 例如,您可以使用它在与低DPI相同的文件中交付高DPI设备的资产。 在安装时,将正确的资产部署在正确的设备上。 同样,可以基于OS语言检测来交付国际化内容。
MSIX使在容器中运行代码更加容易
MSIX最重要的方面也许是它对容器化安装的支持。 当前,Win32应用程序完全信任您的PC,从而使他们可以访问敏感文件和整个注册表。 适用于Win 32和Windows Store应用程序的Windows Defender Application Guard使用容器和隔离的内核来确保更高的安全性,并且一个应用程序干扰另一个应用程序的风险大大降低。 Desktop Bridge代码使用另一个容器模型来虚拟化原始Win32代码所具有的许多交互,以及在Windows Defender Application Guard外部运行的UWP应用程序也是如此。
通过为Desktop Bridge和UWP应用程序使用新的组合容器模型,MSIX为两种应用程序类型提供了相同的隔离级别。 应用程序容器化是现代OS部署和安全模型的重要方面,使其成为部署和打包工具的一部分将增加支持它的应用程序的数量。
从哪里获得MSIX工具
在Microsoft将MSIX内置到其自己的开发工具中的同时,它还在与现有的安装程序供应商合作以在其工具中添加支持。 GitHub上也提供了MSIX SDK 。 而且像Advanced Installer这样的供应商正在以最新版本发布它。 因此,您可以立即开始为代码测试MSIX安装程序。 还提供了针对IT专业人员的MSIX打包工具 ,您可以使用它将现有的MSI安装迁移到MSIX,以及为您的站点和用户构建自定义程序包。
自从MSI首次发布以来,Windows已经发生了很大的变化,而MSIX最终为它提供了一个可在其所有开发SDK中使用的现代安装程序。 这足以使开发人员急于使用新工具,但是Microsoft还承诺将跨平台支持与其跨平台开发工具一起使用。
对于Windows,iOS,Android和Linux,只有一个安装程序模型是一个雄心勃勃的项目,但是如果Microsoft可以交付,它将使管理和部署企业和消费者代码变得更加简单。
msix中断