如何在安装后将应用程序文件夹添加到%PATH%(VS安装项目)

时间:2010-05-25 11:17:36

标签: visual-studio setup-project

我正在寻找一种简单的方法,在安装完成后将应用程序安装文件夹包含到%PATH%环境变量中。

Visual Studio 2005/2008/2010,安装项目。

谢谢

3 个答案:

答案 0 :(得分:2)

很遗憾,但您似乎仍然认为需要为自定义操作编写类。示例实现已经消失。请参阅下面的替代方案。

答案 1 :(得分:1)

这是一个老问题,但仍然在谷歌搜索结果中排名靠前。

接受答案中的链接现已中断。

但是,你可以在这里找到一个重复的问题(稍后会问)仍然有准确的答案: GetEnvironmentVariable() and SetEnvironmentVariable() for PATH Variable

我将此问题标记为重复,但在此处关闭之前,以下代码对我有用:

string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment";
//get non-expanded PATH environment variable            
string oldPath = (string)Registry.LocalMachine.CreateSubKey(keyName).GetValue("Path", "", RegistryValueOptions.DoNotExpandEnvironmentNames);
//set the path as an an expandable string
Registry.LocalMachine.CreateSubKey(keyName).SetValue("Path", oldPath + ";%MYDIR%",    RegistryValueKind.ExpandString);

我用应用程序路径替换了%MYDIR%。

此外,您需要进行自定义操作以容纳此代码并将代码放在提交函数中。

答案 2 :(得分:0)

主要问题是Visual Studio安装程序不支持Windows Installer Environment表,该表可以使用PATH和其他环境变量完成所有这些操作。 MSI的环境表并不复杂,因此值得使用MSI编辑器(如Orca)学习如何使用它,然后使用后期构建步骤自动执行MSI更新脚本(例如Windows SDK中的WiRunSql.vbs)以自动执行更新。

或者,学习足够的WiX以创建包含设置所需的环境变量的合并模块,并将其添加到Visual Studio设置中。

这些选择中的任何一个都比编写运行时代码要好,这些代码需要注意不要破坏环境变量,也不要在Everyone安装中处理用户变量。