Ryt*_*tis 10 windows-installer
我一直想知道为什么 Windows Installer 一次只允许您安装一个程序。无法启动多个安装是非常令人沮丧的,尤其是在设置新的 Windows 安装时。这是什么原因?
当并发安装发生时,保证正确性将是非常复杂的——假设它们共享一些文件。这将需要某种形式的交易。
这些概念是从事务数据库中得知的 - 但这个主题并不是微不足道的,你通常不会在文件系统中找到一个完整的事务基础设施(即使日志文件系统提供了其中的一部分)。一个问题是,多个锁可能导致死锁——那么您需要检测死锁(或者两个安装程序都将永远挂起),以及一种处理这种情况的方法。可以避免死锁(例如,始终以相同的顺序锁定文件),但还有其他问题:
如果您预先锁定所有必需的文件,您就可以有效地获得所拥有的:一个安装程序必须等待另一个安装程序完成。如果您不预先锁定所有必需的文件,并继续前进,则“交易”将面临失败的风险。这意味着必须重新启动其中一个安装程序。
然后您可能需要考虑事务隔离级别——要完全正确,您的事务必须是“可序列化的” ——但这并不容易,即使对于许多数据库也是如此。
甚至可能有其他策略来处理这些问题,这些策略可以绕过完全隔离,但通常更难证明它们的正确性。
我相信,通过并发安装,我们会遇到更多棘手的安装后问题——尤其是因为我不认为操作系统供应商(或发行版)会经历所有麻烦以使其 100% 干净。所以我宁愿不使用它,即使它是由操作系统提供的。
笔记
但也许您真正想要的甚至不是“同时”安装。如果您可以将安装排队,然后一个接一个地执行(理想情况下中间不问任何问题),也许就足够了。这真的很重要,其他一些操作系统(发行版)处理得更好。
| 归档时间: |
|
| 查看次数: |
8934 次 |
| 最近记录: |