gpt4 book ai didi

c# - 如何取消和回滚 VS2010 Windows Installer 中的自定义操作?

转载 作者:太空狗 更新时间:2023-10-30 00:16:25 26 4
gpt4 key购买 nike

我有一个自定义操作,可以通过 Windows 安装程序从受信任的根证书中添加/删除证书。我通过使用 CustomAction 来实现这一点

用户可能没有权限将证书添加到 TrustedRoots,或者他们可能选择“取消”,我如何回滚之前的操作,并告诉安装程序我已经取消了该过程?

就目前而言,Windows Installer 始终报告成功响应,即使失败也是如此。

最佳答案

您应该将自定义操作设置为返回类型为 ActionResult 的函数这样,如果发生取消或其他异常,您可以返回失败类型。

using Microsoft.Deployment.WindowsInstaller;
namespace CustomAction1
{
public class CustomActions
{
[CustomAction]
public static ActionResult ActionName(Session session)
{
try
{
session.Log("Custom Action beginning");

// Do Stuff...
if (cancel)
{
session.Log("Custom Action cancelled");
return ActionResult.Failure;
}

session.Log("Custom Action completed successfully");
return ActionResult.Success;
}
catch (SecurityException ex)
{
session.Log("Custom Action failed with following exception: " + ex.Message);
return ActionResult.Failure;
}
}
}
}

注意:这是一个与 WIX 兼容的自定义操作。我找到 WIX允许对 MSI 创建进行更多控制。

关于c# - 如何取消和回滚 VS2010 Windows Installer 中的自定义操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7246886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com