【发布时间】:2015-08-09 05:01:21
【问题描述】:
在我的 WIX-Bundle 中,我有一个 ExePackage,如下所示:
它执行一个控制台应用程序,该应用程序尝试打开对 HKLM-Registry 条目的写入,该条目在从捆绑包中触发时失败。在cmd中,以管理员身份执行时一切正常:
<ExePackage Id="SqlServerAuthConfig"
DisplayName="Configuration of SQL-Server Auth-Mode"
Compressed="yes"
PerMachine="yes"
Vital="yes"
Name="DatabaseMigrator.exe"
SourceFile="Migrator/DatabaseMigrator.exe"
InstallCommand="-ac -s "localhost\SQLEXPRESS">
<Payload Compressed="yes" SourceFile="Migrator/Common.dll" />
<Payload Compressed="yes" SourceFile="Migrator/NPoco.dll" />
<Payload Compressed="yes" SourceFile="Migrator/NLog.dll" />
</ExePackage>
有什么可以阻止这个包以我不知道的提升权限执行的吗?另外,有没有办法让应用的控制台输出(console-log)进入捆绑日志以便更好地调试?
编辑
这是 Bundle-Log 中关于 ExePackage 执行的一个例外:
[1760:1510][2015-05-27T08:14:26]i301: Applying execute package: SqlServerAuthConfig, action: Install, path: C:\ProgramData\Package Cache\55E9EE89B506B4D626529F73B05E246CA13BE84B\DatabaseMigrator.exe, arguments: '"C:\ProgramData\Package Cache\55E9EE89B506B4D626529F73B05E246CA13BE84B\DatabaseMigrator.exe" -ac -s "localhost\SQLEXPRESS"'
[1760:1510][2015-05-27T08:14:30]e000: Error 0x80070003: Process returned error: 0x3
[1760:1510][2015-05-27T08:14:30]e000: Error 0x80070003: Failed to execute EXE package.
[091C:0094][2015-05-27T08:14:30]e000: Error 0x80070003: Failed to configure per-machine EXE package.
[091C:0094][2015-05-27T08:14:30]i319: Applied execute package: SqlServerAuthConfig, result: 0x80070003, restart: None
[091C:0094][2015-05-27T08:14:30]e000: Error 0x80070003: Failed to execute EXE package.
【问题讨论】:
-
您使用的是哪个版本的 WIX?您能否发布刻录日志中显示运行
ExePackage的刻录引擎的部分?您是否有具体证据表明ExePackage没有被提升? -
感谢您的回复。我已经发布了日志的摘录。不,我没有具体证据,但取消管理员权限是重现我所知道的行为的唯一方法......
标签: wix bootstrapper elevated-privileges