我正在寻找一种简单的方法,在安装完成后将应用程序安装文件夹包含到%PATH%环境变量中。
Visual Studio 2005/2008/2010,安装项目。
谢谢
答案 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安装中处理用户变量。