Visual studio Visual Studio MSI安装程序-不进行注册表更改

Visual studio Visual Studio MSI安装程序-不进行注册表更改,visual-studio,visual-studio-2013,windows-installer,Visual Studio,Visual Studio 2013,Windows Installer,我创建了一个VisualStudioMSI项目,它运行一个自定义的EXE(这很好)。在这个exe中,有一些代码可以添加额外的注册表更改,以将条目添加到Internet选项中(主要是本地Intranet和受信任的安全站点)。当exe自身运行(并在调试器中运行)时,它会按预期执行(并将正确的注册表项放在正确的位置)。但是,当MSI执行exe文件时,该部分即使在运行时也会被忽略(我在所有地方都添加了Console.Writelines) 我已经为此绞尽脑汁两天了,如果有人有这方面的经验,正确的方向会很

我创建了一个VisualStudioMSI项目,它运行一个自定义的EXE(这很好)。在这个exe中,有一些代码可以添加额外的注册表更改,以将条目添加到Internet选项中(主要是本地Intranet和受信任的安全站点)。当exe自身运行(并在调试器中运行)时,它会按预期执行(并将正确的注册表项放在正确的位置)。但是,当MSI执行exe文件时,该部分即使在运行时也会被忽略(我在所有地方都添加了Console.Writelines)

我已经为此绞尽脑汁两天了,如果有人有这方面的经验,正确的方向会很好


我正在使用Visual Studio 2013。

从MSI剥离到EXE被认为是不“好的”。我记得,VisualStudio部署项目(.VDPROJ)的许多限制之一是自定义操作是通过模拟来安排的。如果从标准用户上下文调用MSI,UAC提升将不会有帮助,因为标准用户上下文是模拟的

如果您想要一个可靠的、基于最佳实践的安装程序,应该使用注册表表。当然,问题是VDPROJ的另一个恼人的限制是,每个注册表值都是它自己组件的密钥文件,您很快就会陷入自我修复的地狱


我真的建议从另一个工具集开始。我可以想出几个好的方法。

我没有意识到在MSI builder for Visual Studio中有一个“目标机器上的注册表”选项。我所要做的就是右键单击项目>视图>注册表

在那里,我只需要在正确的位置绘制出值


谢谢大家的回答。

我想有人不喜欢我的问题,或者我发现了答案。。。我想知道为什么