Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在WiX 3.0中设置.NET自定义操作?_Wix_Windows Installer - Fatal编程技术网

如何在WiX 3.0中设置.NET自定义操作?

如何在WiX 3.0中设置.NET自定义操作?,wix,windows-installer,Wix,Windows Installer,我需要在WiX 3.0中设置自定义操作。我的Windows应用程序exe中有以下设置 我已经在上查看了这个问题,但是我无法在WIX3.0上使用它。这似乎与InstallUtilLib.dll有关,但我无法确定如何在主Windows应用程序可执行文件中调用自定义操作 另外,是否有一些方法可以用来手动调用和测试OnBeforeUninstall函数是否按预期工作 Imports System.Configuration.Install.Installer Imports System.IO Pub

我需要在WiX 3.0中设置自定义操作。我的Windows应用程序exe中有以下设置

我已经在上查看了这个问题,但是我无法在WIX3.0上使用它。这似乎与InstallUtilLib.dll有关,但我无法确定如何在主Windows应用程序可执行文件中调用自定义操作

另外,是否有一些方法可以用来手动调用和测试OnBeforeUninstall函数是否按预期工作

Imports System.Configuration.Install.Installer
Imports System.IO

Public Class CustomInstaller
    Inherits Configuration.Install.Installer

    Protected Overrides Sub OnBeforeUninstall(ByVal savedState As System.Collections.IDictionary)
        MyBase.OnBeforeUninstall(savedState)

        Try

    End Sub

End Class

InstallUtil是一个丑陋的反模式。如果需要托管CustomAction,应该使用WiX的DTF模式。此外,当本机WiX/MSI功能能够满足您的需求时,您应该尝试避免所有自定义操作。您是否尝试使用RemoveFile元素?

RemoveFile不会删除子目录和文件等。我正在处理独立存储,并删除我不知道文件名的设置。我的应用程序是否可以使用命令行“app.exe/reset”删除设置?在删除之前,我如何在程序文件中运行它?的确,RemoveFile不会删除递归目录。下面是我如何滚动的。。。。我使用C#/DTF编写了一个即时自定义操作,在安装过程中将临时记录发送到RemoveFiles表中。这样,我所要做的就是删除我需要的业务逻辑。Windows Installer然后处理删除的实际执行,包括在卸载中止时回滚删除。谢谢,听起来不错。我在上找到了DTF和WiX的一个示例,但是我注意到sfxca.dll是x86或x64。我只对我的应用程序进行一次构建,因为.NET framework将在适当的情况下以64位运行它。我是否需要在自定义操作中手动处理此问题?您可能希望选择x86。MSI不是任何CPU,你必须说一个或另一个,但如果说x86,你将在x64上的WOW64中作为32位进程运行。一旦安装,您的EXE可以继续作为任何CPU。