Visual studio 2010 Visual Studio(2010)安装项目x64-安装时删除注册表项,卸载时添加

Visual studio 2010 Visual Studio(2010)安装项目x64-安装时删除注册表项,卸载时添加,visual-studio-2010,64-bit,registry,setup-project,Visual Studio 2010,64 Bit,Registry,Setup Project,我正在尝试创建一个安装项目。 安装时,我希望它创建一些注册表项并删除其他注册表项。 卸载时,我希望它执行相反的操作 关于安装时创建密钥和卸载时删除密钥-没问题,它内置于安装项目中 问题在于在安装时删除密钥(并在卸载时重新添加密钥) 后者没有内置到安装项目中,因此我不得不使用 另一个问题是: 我安装的机器是Windows 764位的。我将安装项目TargetPlatform更改为64位,并将自定义操作dll更改为目标64位 自定义dll(当然继承了System.Configuration.Inst

我正在尝试创建一个安装项目。 安装时,我希望它创建一些注册表项并删除其他注册表项。 卸载时,我希望它执行相反的操作

关于安装时创建密钥和卸载时删除密钥-没问题,它内置于安装项目中

问题在于在安装时删除密钥(并在卸载时重新添加密钥)

后者没有内置到安装项目中,因此我不得不使用

另一个问题是: 我安装的机器是Windows 764位的。我将安装项目TargetPlatform更改为64位,并将自定义操作dll更改为目标64位

自定义dll(当然继承了
System.Configuration.Install.Installer
)正在使用
Process.Start
运行'regedit.exe'(以.reg文件作为参数),但当我尝试安装它(双击编译的安装项目)时,如何“玩”目标平台并不重要,它会打开几个msiexec.exe进程,其中一些是32位的(在ProcessExplorer中验证),因此我的自定义dll会不断更改SysWow64子节点,而不是64位节点(位于HKEY_LOCAL_机器的某个位置)


有什么方法可以在VS安装项目中执行此操作而不转移到其他类型的安装程序?

记录.NET 4.0是否可以接受。它提供从32位程序访问64位注册表的功能。谢谢Hans。NET 4.0是不可接受的,我必须在3.5中工作。但是我发现了这个链接:它在标准控制台应用程序中工作得很好,但在安装项目(msiexec安装程序)中不起作用。它提供从32位程序访问64位注册表的功能。谢谢Hans。NET 4.0是不可接受的,我必须在3.5中工作。但是我发现了这个链接:它可以在标准控制台应用程序中完美工作,但在安装项目(msiexec安装程序)中不起作用。