操作系统:Windows 10 Enterprise N
开发环境:VS2022(64 位)专业版(7.5)
应用程序:VSTO 加载项(Outlook 32 位)
我在安装期间关闭 Outlook 的自定义操作。那行得通。但是,它不会调用我的 UnInstall 代码,它也会关闭 Outlook。
有没有办法单步执行这段代码?
自定义操作代码
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
using System.Diagnostics;
namespace MySetupCustomActions
{
[RunInstaller(true)]
public class AddCustomizations: Installer
{
public AddCustomizations() : base() { }
// Override the 'Install' method.
public override void Install(IDictionary savedState)
{
base.Install(savedState);
KillProcess("outlook");
}
// Override the 'Commit' method.
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
KillProcess("outlook");
}
// Override the 'Rollback' method.
public override void Rollback(IDictionary savedState)
{
base.Rollback(savedState);
KillProcess("outlook");
}
private void KillProcess(string processName)
{
try
{
var procs = Process.GetProcessesByName(processName);
foreach (var p in procs) { p.Kill(); }
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
static void Main()
{
}
}
}
使用 WiX:您已经在使用 WiX 了吗?建议您使用 WiX 而不是 Visual Studio 安装项目。 这里有一些原因。 WiX 快速入门资源。我有一个关于 WiX CA 调试的答案:MSI Custom Action Debugging。或许直接去Visual Studio debugger used with WiX / MSI的视频演示就可以看到快速演示。我从未尝试过 VS 项目(不需要使用它)。
样本:一些进一步的资源:
我的 Hello WiX 风格样本。该 github 帐户中有更多示例。
在 WiX 中使用自定义操作:https://github.com/glytzhkof/WiXCustomActionsTesting
我最近关于 WiX CA 的一些回答 - 请略读:Wix:通过在立即操作中设置延迟操作来访问属性:字典中不存在给定的键
条件:自定义动作条件很容易出错。我在测试期间使用消息框来确定自定义操作何时运行。请参阅此处的说明:How to execute conditional custom action on install and modify only?。然后是这个复杂条件实际最终导致的演练:Wix 工具更新使用旧的自定义操作
关于 MSI 条件的一些进一步链接:
好吧,不知何故我的“卸载”覆盖不见了!!!
啊!!!太多的深夜。
它的工作。
也就是说,我仍然想知道如何逐步执行这段代码?我会在新主题中发帖。