64-битная версия Visual Studio 2010 Setup Project создает проблему реестра - PullRequest
4 голосов
/ 12 сентября 2011

У меня есть 64-битный проект установки с 64-битной службой Windows EXE и DLL. В моем классе установщика я создаю ключи реестра с этим кодом:

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

Но он продолжает создавать ключи реестра в ПРОГРАММНОМ ОБЕСПЕЧЕНИИ \ WOW6432NODE \ SOFTWARE \ FOLDER \ FOLDER \ FOLDER. Btw setup копирует exe и dll в папку 64-битных программных файлов. Нет проблем при копировании папок в 64-битную папку.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 12 сентября 2011

Вы используете .NET 4, используйте новый RegistryKey.OpenBaseKey () и передаете RegistryView.Registry64

2 голосов
/ 12 сентября 2011

Это происходит потому, что ваше пользовательское действие использует 32-битный процесс.Возможно, эта статья поможет: http://blogs.msdn.com/b/heaths/archive/2006/02/01/64-bit-managed-custom-actions-with-visual-studio.aspx

По сути, вам нужно либо заставить его использовать 64-битный процесс, либо вызвать функцию, которая может записать в куст 64-битного реестра.

...