一尘不染

WIxsharp在控制台中调试自定义操作

c#

我有一个可编译为.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;
    }

阅读 410

收藏
2020-05-19

共1个答案

一尘不染

不太确定是什么引起了问题,我删除了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;
     }
2020-05-19