C# 是否可以知道安装程序是否正在自定义操作中安装/更新/删除?

C# 是否可以知道安装程序是否正在自定义操作中安装/更新/删除?,c#,installation,wix,C#,Installation,Wix,是否可以知道安装程序是否正在自定义操作中安装/更新/删除 我们已经在C#中创建了一个自定义动作dll,如果我们能够检测到安装程序正在做什么,那将非常有趣。在WIXXML文档中,可以使用“未安装”、“删除”等(参见此)。但是有可能在自定义操作中访问这些变量吗 我们尝试将变量传递给自定义操作,但这只会为我们提供一个字符串值为“Not Installed”的变量,而不是true或false。我假设您使用的是DTF。您的自定义操作计划是立即执行还是延迟执行 对于Immadiate,您可以使用会话[“In

是否可以知道安装程序是否正在自定义操作中安装/更新/删除

我们已经在C#中创建了一个自定义动作dll,如果我们能够检测到安装程序正在做什么,那将非常有趣。在WIXXML文档中,可以使用“未安装”、“删除”等(参见此)。但是有可能在自定义操作中访问这些变量吗


我们尝试将变量传递给自定义操作,但这只会为我们提供一个字符串值为“Not Installed”的变量,而不是true或false。

我假设您使用的是DTF。您的自定义操作计划是立即执行还是延迟执行

对于Immadiate,您可以使用会话[“Installed”]自己访问该属性。对于延迟,您必须使用CustomActionData模式自己序列化/反序列化数据


此外,我通常不会以任何方式使用这些属性。我倾向于使用组件和/或功能动作状态将自定义动作与已安装应用程序的某个部分相关联。这允许在执行维护操作(如添加和删除功能)时表现良好。

我假设您使用的是DTF。您的自定义操作计划是立即执行还是延迟执行

对于Immadiate,您可以使用会话[“Installed”]自己访问该属性。对于延迟,您必须使用CustomActionData模式自己序列化/反序列化数据

此外,我通常不会以任何方式使用这些属性。我倾向于使用组件和/或功能动作状态将自定义动作与已安装应用程序的某个部分相关联。这允许在执行维护操作(如添加和删除功能)时表现良好。

您可以参考

Javascript中的自定义操作可以获得如下属性:

var installAction = Session.Property("ACTION");
可能的值是INSTALL、Advertised或ADMIN

如果这还不行,我敢打赌另一个会满足的

您可以参考

Javascript中的自定义操作可以获得如下属性:

var installAction = Session.Property("ACTION");
可能的值是INSTALL、Advertised或ADMIN


如果这还不行,我敢打赌另一个会满足的

嗯,我们在自定义操作中创建了两个入口点,并检入了应该调用的dewxs文件。这不是我们想要的方式,但它现在可以工作。

Hm,我们在自定义操作中创建了两个入口点,并检入了我们应该调用的de wxs文件。这不是我们想要的方式,但它现在起作用了。

嗨,谢谢你的回答。我们解决了这个问题。安装程序将只由我们自己执行,因此我们将接受这样一个事实,即自定义操作是被执行的。无论如何,我们都会收到一个MessageBox,因此,对于技术用户来说,我们可以接受它。此外,我们现在还有其他优先事项。但是,如果我没记错的话,会话[“Installed”]没有工作。您好,谢谢您的回答。我们解决了这个问题。安装程序将只由我们自己执行,因此我们将接受这样一个事实,即自定义操作是被执行的。无论如何,我们都会收到一个MessageBox,因此,对于技术用户来说,我们可以接受它。此外,我们现在还有其他优先事项。但是,如果我没记错的话,会话[“Installed”]无法工作。