如何使用nsis向visual studio添加包含路径?

时间:2011-03-30 17:51:50

标签: visual-c++ nsis

有谁知道如何让我的nsis安装程序更新visual studio包含我的sdk路径的路径?

3 个答案:

答案 0 :(得分:1)

创建批处理文件(.bat),在其中设置PATH变量(将SDK目录添加到PATH) - 这可能取决于您使用的Windows版本。 Visual Studio会自动搜索PATH。

然后简单地使用nsExec::ExecToStack以安静模式运行此bat文件。

答案 1 :(得分:1)

在下一篇文章中,我假设您使用的是Visual Studio 2008。

如果要直接更改路径,则必须修改文件%LOCALAPPDATA%\ Microsoft \ VisualStudio \ 9.0 \ VCComponents.dat

无需将密钥写入注册表,因为目录保存在此处。

使用此NSIS代码将目录 C:\ YOUR DIRECTORY HERE 添加到其中:

Function Write
SetShellvarContext current
ReadIniStr $0 "$LOCALAPPDATA\Microsoft\VisualStudio\9.0\VCComponents.dat" "VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directories" "Include Dirs"
WriteIniStr "$LOCALAPPDATA\Microsoft\VisualStudio\9.0\VCComponents.dat" "VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directories" "Include Dirs" "$0;C:\YOUR DIRECTORY HERE"
IfErrors Error NoError
Error:
  MessageBox MB_OK "Cound not write!"
NoError:
FunctionEnd

要小心,因为有很多选择。 Ini通常看起来像这样:

[PLATFORM]

目录= Dir1中; Dir2中; $(VSVariable)路径

上面的示例将目录写入 Win32 包含文件。看图了解它。

enter image description here

对于Visual Studio 2010,格式已更改(更改为XML): http://blogs.msdn.com/b/vsproject/archive/2009/07/07/vc-directories.aspx

答案 2 :(得分:0)

NSIS没有对VS的任何特定支持,但您可以使用ReadRegStr and WriteRegStr编辑任何注册表设置