是否可以知道安装程序是否在自定义操作中安装/更新/删除?
我们在C#中创建了一个自定义动作DLL,如果我们能够检测到安装程序正在做什么,那将会很有趣。在WiX xml文档中,您可以使用“未安装”,“删除”等(请参阅此nice overview)。但是可以在自定义操作中访问这些变量吗?
我们尝试将变量传递给Custom Action,但这只是给我们一个变量,其字符串值类似于'Not Installed',而不是true或false。
答案 0 :(得分:1)
您可以参考ACTION property。
Javascript中的自定义操作可以获取此属性;
var installAction = Session.Property("ACTION");
可能的值为INSTALL,ADVERTISE或ADMIN。
如果不这样做,我敢打赌其他built-in properties中的一个会满足。
答案 1 :(得分:0)
我假设您正在使用DTF。您的自定义操作是否已计划为暂停执行或延期执行?
对于immeadiate,您可以使用会话[“已安装”]自行访问该媒体资源。对于延迟,您必须使用CustomActionData模式自行序列化/反序列化数据。
此外,我通常也不会使用这些属性。我倾向于使用组件和/或功能操作状态将我的自定义操作与已安装的应用程序的一部分相关联。这样可以在执行添加和删除功能等维护操作时获得良好的行为。
答案 2 :(得分:0)
嗯,我们最终在自定义操作中创建了两个入口点,并检查了de wxs文件,我们应该调用哪个。不是我们想要的,但它现在有效。