C# 高级安装程序破坏了注册表路径

C# 高级安装程序破坏了注册表路径,c#,class,installation,advanced-installer,C#,Class,Installation,Advanced Installer,版本(8.9)我开发了一个简单的.Net安装程序类。它的特殊功能是基于*ini文件提供特定的UI。据我所知,高级安装程序不支持这样的东西。如果我错了,请纠正我!但这不是我问题的重点。 根据用户的选择,“我的安装程序”类在注册表中合并一个特定的*.reg文件。以下是我用于此目的的代码: Process proc = new System.Diagnostics.Process(); proc.EnableRaisingEvents=false; proc.StartInfo.FileName="r

版本(8.9)我开发了一个简单的.Net安装程序类。它的特殊功能是基于*ini文件提供特定的UI。据我所知,高级安装程序不支持这样的东西。如果我错了,请纠正我!但这不是我问题的重点。 根据用户的选择,“我的安装程序”类在注册表中合并一个特定的*.reg文件。以下是我用于此目的的代码:

Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents=false;
proc.StartInfo.FileName="regedit.exe";
proc.StartInfo.Arguments = " \"" + regFilePath + "\"";
proc.StartInfo.UseShellExecute = true;
proc.Start();
所以如果我有一个类似的sample.reg文件

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\NIKOLETA]
...
当我在Windows installer(内置VS)中导入我的安装程序类时,sample.reg会很好地合并,NIKOLETA key会出现在HKEY_CURRENT_USER\SOFTWARE下。 不幸的是,当在“高级安装程序”下导入安装程序类时,sample.reg再次合并,但不是在所需的位置,而是在“HKEY_用户.默认\软件”下出现NIKOLETA键。 我得知,高级安装程序对HKEY_用户的默认路径为HKEY_USERS.default\Software[Manufacturer][ProductName]。但它如何以及为什么影响.Net安装程序类? 如何解决这个问题,以便正确合并我的*.reg文件?
谢谢你的期待

HKEY_USERS.DEFAULT它实际上是本地系统帐户的配置文件,因此,如果您的自定义操作设置为以延迟方式运行而不进行模拟,则注册表项可以重定向到那里,这意味着它设置为在具有完全管理员权限的系统帐户下运行

另外,如果您只想根据条件创建某个注册表项,则可以从注册表页创建这些项,并从组织页面在其组件上设置安装条件