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

时间:2011-09-12 06:54:52

标签: c# visual-studio-2010 .net-4.0 installation

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

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

但它一直在SOFTWARE \ WOW6432NODE \ SOFTWARE \ FOLDER \ FOLDER \ FOLDER创建注册表项。 顺便说一下,在64位程序文件文件夹下复制exe和dll。将文件夹复制到64位文件夹没问题。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

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

基本上,您需要使其使用64位进程或调用可以在64位注册表配置单元中编写的函数。

答案 1 :(得分:2)

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