WIX:如何在安装过程中不调用 ActionStart(Name=StartMetabaseTransaction) [英] WIX: How not to call ActionStart(Name=StartMetabaseTransaction) during installation
问题描述
我的安装程序在没有安装 IIS 的机器上安装时会失败.将要安装的功能不需要 IIS.错误提示无法连接到 Internet 信息服务器".
My installer would fail when installed on a machine that has no IIS installed. The features that are going to be installed doesnt need IIS. The error says "Cannot connect to Internet Information Server".
除此之外.安装程序文件还有一项需要 IIS 的功能.但是当我取消选择该功能时,安装程序仍会查找 IIS.下面是它生成的日志.
In addition to that. The installer file has also a feature that requires IIS. But when I unselect that feature, the installer still looks for IIS. Below is the log it generated.
MSI (s) (D0:F8) [11:39:12:437]: Note: 1: 2318 2: C:\Program Files\Cormant Technologies\DCE\WindowsService\UninflectedWords.txtMSI (s) (D0:F8) [11:39:12:437]:执行操作:CacheSizeFlush(,)MSI (s) (D0:F8) [11:39:12:437]:执行操作:InstallProtectedFiles(AllowUI=1)MSI (s) (D0:F8) [11:39:12:437]:执行操作:ActionStart(Name=StartMetabaseTransaction,Description=Starting IIS Metabase Transaction,)行动 11:39:12:开始元数据库交易.启动 IIS 元数据库事务MSI (s) (D0:F8) [11:39:12:453]:执行操作:CustomActionSchedule(Action=StartMetabaseTransaction,ActionType=11265,Source=BinaryData,Target=***,CustomActionData=***)MSI (s) (D0:D4) [11:39:12:453]:调用远程自定义操作.DLL:C:\WINDOWS\Installer\MSI1D.tmp,入口点:StartMetabaseTransactionStartMetabaseTransaction:错误 0x80040154:无法获取 IID_IIMSAdminBase 对象错误 26001.无法连接到 Internet 信息服务器.(-2147221164 )MSI (s) (D0!78) [11:39:13:812]:产品:DCE -- 错误 26001.无法连接到 Internet 信息服务器.(-2147221164 )
MSI (s) (D0:F8) [11:39:12:437]: Note: 1: 2318 2: C:\Program Files\Cormant Technologies\DCE\WindowsService\UninflectedWords.txt MSI (s) (D0:F8) [11:39:12:437]: Executing op: CacheSizeFlush(,) MSI (s) (D0:F8) [11:39:12:437]: Executing op: InstallProtectedFiles(AllowUI=1) MSI (s) (D0:F8) [11:39:12:437]: Executing op: ActionStart(Name=StartMetabaseTransaction,Description=Starting IIS Metabase Transaction,) Action 11:39:12: StartMetabaseTransaction. Starting IIS Metabase Transaction MSI (s) (D0:F8) [11:39:12:453]: Executing op: CustomActionSchedule(Action=StartMetabaseTransaction,ActionType=11265,Source=BinaryData,Target=***,CustomActionData=***) MSI (s) (D0:D4) [11:39:12:453]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI1D.tmp, Entrypoint: StartMetabaseTransaction StartMetabaseTransaction: Error 0x80040154: failed to get IID_IIMSAdminBase object Error 26001. Cannot connect to Internet Information Server. (-2147221164 ) MSI (s) (D0!78) [11:39:13:812]: Product: DCE -- Error 26001. Cannot connect to Internet Information Server. (-2147221164 )
操作于 11:39:13 结束:InstallFinalize.返回值 3.MSI (s) (D0:F8) [11:39:13:828]:用户策略值DisableRollback"为 0MSI (s) (D0:F8) [11:39:13:828]:机器策略值DisableRollback"为 0MSI (s) (D0:F8) [11:39:13:828]: Executing op: Header(Signature=1397708873,Version=301,Timestamp=1029397732,LangId=1033,Platform=0,ScriptType=2,ScriptMajorVersion=21,ScriptMinorVersion=4,ScriptAttributes=0)MSI (s) (D0:F8) [11:39:13:828]:执行操作:DialogInfo(Type=0,Argument=1033)MSI (s) (D0:F8) [11:39:13:828]:执行操作:DialogInfo(Type=1,Argument=DCE)MSI (s) (D0:F8) [11:39:13:828]:执行操作:RollbackInfo(,RollbackAction=Rollback,RollbackDescription=回滚操作:,RollbackTemplate=[1],CleanupAction=RollbackCleanup,CleanupDescription=删除备份files,CleanupTemplate=文件:[1])行动 11:39:13:回滚.回滚动作:回滚:启动 IIS 元数据库事务MSI (s) (D0:F8) [11:39:13:828]:执行操作:ActionStart(Name=StartMetabaseTransaction,Description=Starting IIS Metabase Transaction,)MSI (s) (D0:F8) [11:39:13:828]:执行操作:ProductInfo(ProductKey={FC6DA479-9C97-4941-8AAE-3E0C9D6DAA56},ProductName=DCE,PackageName=DCEWebInstaller.msi,Language1033,Version=50462720,Assignment=0,ObsoleteArg=0,,,PackageCode={FBFBCC4D-BE93-4AEA-8B05-922409001DE5},,,InstanceType=0,LUASetting=0,RemoteURTInstalls=0)MSI (s) (D0:F8) [11:39:13:828]:SHELL32::SHGetFolderPath 返回:C:\Documents and Settings\Administrator\Application Data回滚:复制新文件
Action ended 11:39:13: InstallFinalize. Return value 3. MSI (s) (D0:F8) [11:39:13:828]: User policy value 'DisableRollback' is 0 MSI (s) (D0:F8) [11:39:13:828]: Machine policy value 'DisableRollback' is 0 MSI (s) (D0:F8) [11:39:13:828]: Executing op: Header(Signature=1397708873,Version=301,Timestamp=1029397732,LangId=1033,Platform=0,ScriptType=2,ScriptMajorVersion=21,ScriptMinorVersion=4,ScriptAttributes=0) MSI (s) (D0:F8) [11:39:13:828]: Executing op: DialogInfo(Type=0,Argument=1033) MSI (s) (D0:F8) [11:39:13:828]: Executing op: DialogInfo(Type=1,Argument=DCE) MSI (s) (D0:F8) [11:39:13:828]: Executing op: RollbackInfo(,RollbackAction=Rollback,RollbackDescription=Rolling back action:,RollbackTemplate=[1],CleanupAction=RollbackCleanup,CleanupDescription=Removing backup files,CleanupTemplate=File: [1]) Action 11:39:13: Rollback. Rolling back action: Rollback: Starting IIS Metabase Transaction MSI (s) (D0:F8) [11:39:13:828]: Executing op: ActionStart(Name=StartMetabaseTransaction,Description=Starting IIS Metabase Transaction,) MSI (s) (D0:F8) [11:39:13:828]: Executing op: ProductInfo(ProductKey={FC6DA479-9C97-4941-8AAE-3E0C9D6DAA56},ProductName=DCE,PackageName=DCEWebInstaller.msi,Language=1033,Version=50462720,Assignment=0,ObsoleteArg=0,,,PackageCode={FBFBCC4D-BE93-4AEA-8B05-922409001DE5},,,InstanceType=0,LUASetting=0,RemoteURTInstalls=0) MSI (s) (D0:F8) [11:39:13:828]: SHELL32::SHGetFolderPath returned: C:\Documents and Settings\Administrator\Application Data Rollback: Copying new files
推荐答案
如果您使用 Orca 仔细查看 InstallExecuteSequence 中的 ConfigureIIs 自定义操作,您将看到其执行取决于名为 SKIPCONFIGUREIIS 的属性.这是全有或全无"开关,如果您在 IIS 相关功能关闭的情况下为这些情况设置此属性,则安装将不会尝试解决 IIS 服务.
If you take a closer look at the ConfigureIIs custom action in the InstallExecuteSequence using Orca, you'll see its execution depends on the property called SKIPCONFIGUREIIS. It is "all-or-nothing" switch, and if you set this property for those cases when your IIS-related feature is off, the installation won't try to address IIS services.
希望这会有所帮助.
这篇关于WIX:如何在安装过程中不调用 ActionStart(Name=StartMetabaseTransaction)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!