C# 如何将注册表值更新为";系统“;用户?

C# 如何将注册表值更新为";系统“;用户?,c#,.net,visual-studio-setup-proje,C#,.net,Visual Studio Setup Proje,我有一个Windows窗体应用程序需要更新注册表值。当我调试应用程序时,值被正确保存。但是,当我在安装程序(Visual Studio安装项目-.vdproj)完成后启动应用程序时,应用程序会正确启动,但没有正确保存注册表值 我没有收到任何错误,但似乎无法在该位置找到条目 如果我双击.exe,这些值将正确保存 是否因为安装程序以“系统”用户的身份启动应用程序 如何解决此问题?您应该说明代码试图更新哪些注册表项,但如果它们是HKCU项,例如,您将看到系统帐户运行时的差异 还不清楚为什么您需要一个程

我有一个Windows窗体应用程序需要更新注册表值。当我调试应用程序时,值被正确保存。但是,当我在安装程序(Visual Studio安装项目-.vdproj)完成后启动应用程序时,应用程序会正确启动,但没有正确保存注册表值

我没有收到任何错误,但似乎无法在该位置找到条目

如果我双击.exe,这些值将正确保存

是否因为安装程序以“系统”用户的身份启动应用程序


如何解决此问题?

您应该说明代码试图更新哪些注册表项,但如果它们是HKCU项,例如,您将看到系统帐户运行时的差异


还不清楚为什么您需要一个程序来创建注册表项,而安装程序将为您这样做,并且它将正常工作。在Visual Studio安装程序中,注册表视图中的项目。您可能希望存储在注册表中的许多值可能作为标准Windows Installer属性提供,并使用方括号语法(如[TARGETDIR])存储它们

您的安装程序要求UAC提升,并得到它,这使您从安装程序启动的程序也运行提升。当你在注册表中闲逛时,这通常会产生很大的不同。虽然现在还不清楚为什么你在高处跑步时会出现问题,但你应该解决这个问题。而不是隐藏执行该操作的代码。没有简单的方法可以启动一个未升级的程序,所以不要这样做。你应该说你的代码正在尝试更新哪些注册表项,但如果它们是HKCU项,例如,你将看到系统帐户运行时的差异。还不清楚为什么您需要一个程序来创建注册表项,而安装程序将为您创建注册表项,并且它将正常工作。@PhilDW我理解我的方法不正确,并且能够由安装程序自己创建注册表项。将我的注释复制到一个答案中,以提供一些结尾。