c# - 控制台中的 WIxsharp 调试自定义操作

标签 c# wix windows-installer wixsharp

我有一个编译为 .dll 的自定义操作项目,我希望能够逐步完成我的自定义操作,我知道可以将包更改为 wixsharp.bin,但这看起来不太实用。不管怎样,我仍然尝试了这种方法,但它没有达到我的断点。

Wix 使用:System.Diagnostics.Debugger.Launch(); 在调试中启动操作,这似乎不适用于 wixsharp,但它的预期结果是我想要实现的.

我已经看到 debug.assert 可以用于调试,我还看到了对 #if DEBUG #endif 我如何正确调试的引用?

    [CustomAction]
    public static ActionResult CustomAction(Session session)
    {
        Debug.Assert();
        MessageBox.Show("Hello World!" + session[IISSessions.AppPoolName], "External Managed CA");

        return ActionResult.Success;
    }

最佳答案

不太确定是什么导致了问题,我删除了我的 bin 文件夹,然后运行了一个构建,它现在似乎可以正常工作了。 System.Diagnostics.Debugger.Launch() 确实工作正常,它需要包含在 #if DEBUG 中,正如@Stein Åsmul 所述。在 DEBUG 中构建后运行输出的 .msi,当您在安装过程中点击自定义操作时,系统将提示您打开 visual studio 的实例。

   [CustomAction]
    public static ActionResult CustomAction(Session session)
    {

    #if DEBUG
            System.Diagnostics.Debugger.Launch();
    #endif
            MessageBox.Show("Hello World!" + session[IISSessions.AppPoolName], "External Managed CA");

            return ActionResult.Success;
     }

关于c# - 控制台中的 WIxsharp 调试自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52878332/

相关文章:

wix - 如何获取 WIX 3.6 中编辑框的上下文菜单?

wix - 升级安装可以替换文件吗?

c# - Windows 似乎无法跟踪 .NET 应用程序

properties - 在卸载日志中找不到 WiX 属性

c# - 防止用户在C#中向字符串变量输入整数

wix - 如何在WIX bundle 中使用自定义操作?

c# - 访问级别和修饰符(私有(private)、密封等)是否在 C# 中用于安全目的?

c# - 如果当前打开了以前版本的应用程序,如何升级 MSI 包

c# - 使用 Entity Framework 从数据库中检索数据

c# - 在不同的 AppDomains 中使用的类的静态变量