我有这个项目,需要在安装过程中运行 InstallerClass。
我将它添加为自定义操作,并且它已经这样工作了很长时间。我们对这个类进行了一些维护,清理了解决方案,重建了解决方案,现在自定义操作没有被触发。
我知道它们没有被触发,因为我Debugger.Break()
在清理之前有调用工作,并且不再创建要创建的注册表项这一事实。
到底是怎么回事?如何从 MSI 安装程序获取更多信息?
值得一提的是,我的机器是 64 位的,但该项目是针对 32 位 ( x86 ) 构建的。我以前将它构建为任何 CPU,现在我用什么构建它并不重要,没有结果。
我做了更多的研究,发现如果Debugger.Break();
不再工作可能是由于依赖问题,我在项目上没有收到错误或警告。我以详细的方式运行了 MSI,但我也无法从中做出任何事情。
在日志上迷路后,我没有任何用处。我重新开始并创建了一个带有弹出窗口的新安装程序类。那行得通。之后添加了一个 Break() ,它也起作用了,添加了我想运行的 using Process 语句并且它起作用了......一次。
之后我发现:如果我离开Debugger.Break()
它会被跳过,但如果我删除它它会起作用......
是的,这是随机的……有什么关系?