我正在尝试创建一个安装项目。 在安装时,我希望它创建一些注册表项并删除其他项。 在卸载时,我希望它做相反的事情。
关于在安装时创建密钥并在卸载时删除它们 - 没问题,它已内置到安装项目中。
问题在于在安装时删除密钥(并在卸载时添加它们)。
后者没有内置到安装项目中,所以我不得不使用Custom Action。
这里还有另一个问题: 我正在安装的机器是Windows 7 64位。我将设置项目TargetPlatform更改为64位,并将自定义操作dll更改为目标64位。
自定义dll(当然继承System.Configuration.Install.Installer
)正在使用Process.Start
运行'regedit.exe'(带有.reg文件作为参数),但我玩的方式并不重要'使用目标平台,当我尝试安装它时(双击已编译的安装项目),它会打开几个msiexec.exe进程,一些在32位(在ProcessExplorer中验证),因此我的自定义dll不断更改SysWow64子节点而不是64位节点(在HKEY_LOCAL_MACHINE下的某个地方)。
使用VS安装项目执行此操作的任何方法,而不是移动到其他类型的安装程序?