C# RegistryKey.GetValue在安装程序中不返回任何值

C# RegistryKey.GetValue在安装程序中不返回任何值,c#,.net,installation,registry,C#,.net,Installation,Registry,如果有一个类作为CustomAction作为MSI安装程序包的一部分调用 它尝试从注册表读取值(尝试查找本地SQL Server实例): 作为一个独立的应用程序,它可以正常工作,但如果从安装程序调用(以同一用户的身份运行),它将无法工作。在安装程序中,GetValue返回null 有什么想法吗 编辑: 我与同一用户在同一台计算机上运行了安装程序和exe。 FrameWork是Windows 7 64位计算机上的.Net 4 提前谢谢 Mario这是否与安装程序相关的权限有关?如果您以管理员身份运

如果有一个类作为CustomAction作为MSI安装程序包的一部分调用

它尝试从注册表读取值(尝试查找本地SQL Server实例):

作为一个独立的应用程序,它可以正常工作,但如果从安装程序调用(以同一用户的身份运行),它将无法工作。在安装程序中,
GetValue
返回
null

有什么想法吗

编辑: 我与同一用户在同一台计算机上运行了安装程序和exe。 FrameWork是Windows 7 64位计算机上的.Net 4

提前谢谢


Mario

这是否与安装程序相关的权限有关?如果您以管理员身份运行安装程序会发生什么情况?不幸的是,同样的结果。。。我正在同一台机器上使用相同的用户运行安装程序和exe。安装包是32位还是64位?应用程序是32位还是64位?无论如何,您可能需要使用注册表视图来修复此问题。它具有注册表重定向器的所有特征。谢谢David,它是!现在我已经把它修好了(你可能在我的另一篇文章中已经注意到了)!
   RegistryKey sqlServer = Registry.LocalMachine.OpenSubKey( 
                         @"SOFTWARE\Microsoft\Microsoft SQL Server", false );

   string[] localInstances = (string[])sqlServer.GetValue( "InstalledInstances" );