【发布时间】:2014-06-13 09:15:13
【问题描述】:
我制作了一个安装程序,Visual Studio SetupProject,它安装了我开发的软件,并检查目标机器上是否安装了某个程序。如果没有,它将启动其原始安装文件。该文件在安装过程中被复制到目标机器,并通过CUSTOM ACTION 启动。
安装一切顺利,但我只有一个问题:
我没有开发的单独安装程序应该在User Environment Variables 后面附加一个PATH,指的是它自己的安装文件夹中BIN 文件夹的路径。它没有!我检查了User Environment Variables 的PATH 注册表值,它确实没有得到更新。
但是,当我单独安装程序时,一切顺利!
我尝试将附加安装文件的PackageAs 属性从vsdpaDefault 更改为vsdpaLoose,以使操作可能更“独立”,但它没有改变任何东西。
为什么Environment Variables 没有更新?我的猜测是我的安装程序没有更改这些变量所需的某种权利。
顺便说一句,我使用的是 Visual Studio 2010。
【问题讨论】:
-
“为什么第三方程序没有按照我的预期做”可能最好由客户支持来处理。
-
@Bushmills 正常安装时它会做它应该做的事情。就在我的安装程序调用它的安装时,它没有!
-
从安装程序启动程序是一种非常糟糕的做法。它使用从 setup.exe 继承的 UAC 提升运行。并且在您的情况下是失败的鲸鱼,它很有可能从 setup.exe 继承环境变量并且不会使用注册表中的环境变量。使用 SysInternals 的进程监视器验证您关于它不写入注册表项的假设。
-
@HansPassant 请看下面的评论。
标签: visual-studio-2010 registry environment-variables setup-project