我经常发现引用“InstallUtil.exe”是一个丑陋的模式或“不要使用 InstallUtil.exe”,我应该使用原生 WIX 或安装包模式,但我仍然不明白为什么。
我不再使用 InstallUtil 来安装 .NET 服务,因为我终于了解到为此类操作编写注册表项应该是不可安装的操作 - 我已经接受了这一点,认为这是正确的。
由于我一直在为一个相对复杂的产品使用 WIX 安装程序,因此我发现自己需要创建或更新 SQL Server 数据库、创建或更新 IIS 应用程序以及最后更新或创建配置文件。
我的每个组件(功能)都是可选的,但它们都共享相同的配置文件。由于我的产品使用统一,重要的是要注意这个库包含对从 Unity 配置块读取/更新/删除组件的强大支持,因此对我来说,我应该通过安装组件(即 InstallUtil ) 在安装时创建或更新我的配置文件。
在这里要清楚一点,我的安装程序本身并不包含我的应用程序的配置文件:在安装时,安装程序不知道它的形状,因为它基于所选的功能。当然,我应该将这些知识嵌入到要部署的每个模块中,而不是安装程序的职权范围内,而安装程序现在是一个完全独立的项目?即使我们在谈论安装,这不会破坏 OO 原则吗?
我真的很感激一些关于这是否是好的做法的指导?我是在阅读“InstallUtil”对安装服务不好,还是说使用“InstallUtil”是不好的句号?如果是这样,我有哪些智能更新配置文件的选项?