Visual Studio 2010安装项目64位创建注册表项问题

本文关键字:创建 注册表 问题 64位 项目 Studio 2010 安装 Visual | 更新日期: 2023-09-27 18:08:31

我有一个64位windows服务exe和dll的64位安装项目。在我的安装程序类中,我用以下代码创建注册表项:

using (typeKey = typeKey.CreateSubKey(@"SOFTWARE'Folder'Folder'Folder"))
        {
            typeKey.SetValue("Type", 0);
            typeKey.Close();
        }

但是它一直在SOFTWARE'WOW6432NODE'SOFTWARE'FOLDER'FOLDER'FOLDER中创建注册表项。顺便说一句,安装程序将exe和dll拷贝到64位程序文件文件夹下。将文件夹复制到64位文件夹没有问题。

任何想法?

Visual Studio 2010安装项目64位创建注册表项问题

你正在使用。net 4,使用新的RegistryKey.OpenBaseKey()方法并传递RegistryView。Registry64

这是因为您的自定义操作使用32位进程。也许这篇文章会有所帮助:http://blogs.msdn.com/b/heaths/archive/2006/02/01/64-bit-managed-custom-actions-with-visual-studio.aspx

基本上,您需要使它使用64位进程或调用一个可以在64位注册表hive中写入的函数。