【发布时间】:2011-06-01 06:57:27
【问题描述】:
我已经使用 VS2010 安装项目构建了一个 msi 安装程序。
现在项目不会卸载,因为自定义操作中出现“1001 异常:参数 machineName 的格式无效”(见下文)。
我在使用从系统控件中删除或msiexec /uninstall 卸载应用程序时失败。
有没有办法强制卸载?
详情:
作为自定义操作的一部分,我注册了一个自定义事件源,我的应用程序使用该事件源将事件记录到 Windows 日志中:
public override void Install(IDictionary stateSaver) {
base.Install(stateSaver);
EventLog.CreateEventSource("VeodinRecorder","Application");
}
在“卸载”中,我尝试使用删除此事件源
if (!EventLog.SourceExists("VeodinRecorder"))
EventLog.Delete("VeodinRecorder"); `
EventLog.Delete 也将机器名作为第二个参数
所以我尝试用msiexec /fv覆盖用于卸载的msi并更改了卸载操作:
EventLog.Delete("VeodinRecorder",".");
EventLog.Delete("VeodinRecorder","Application");
我什至将整个“卸载操作”留空。
但似乎没有任何效果。
有什么提示吗?
完整日志:
错误 1001。错误 1001。卸载时发生异常。此异常将被忽略,卸载将继续。但是,卸载完成后应用程序可能不会完全卸载。 --> 参数 machineName 的格式无效。
MSI (s) (60!68) [22:49:00:101]:
调试:错误 2769:自定义操作 _3C1D0358_8969_4B01_B8FA_B6B43F4E9E4C.uninstall 未关闭 1 个 MSIHANDLE。
安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2769。参数为:_3C1D0358_8969_4B01_B8FA_B6B43F4E9E4C.uninstall, 1,
CustomAction _3C1D0358_8969_4B01_B8FA_B6B43F4E9E4C.uninstall 返回实际错误代码 1603(请注意,如果在沙箱内进行翻译,这可能不是 100% 准确)
操作于 22:49:00 结束:InstallExecute。返回值 3.
行动于 22:49:00 结束:安装。返回值 3。
【问题讨论】:
标签: uninstallation windows-installer