扩展的NSIS插件目录

时间:2012-05-17 21:10:19

标签: nsis

我正在使用VS 2010为NSIS构建一个插件,我很乐意设置项目,以便从简单的NSI文件自动构建测试设置。

一切似乎都很好,除了我无法弄清楚如何让NSIS在我的项目的输出文件夹中查找我的插件而不仅仅是C:\Program Files (x86)\NSIS\Plugins\*.dll

我可以在NSI脚本中添加任何命令,让NSIS在“标准插件文件夹”之外查找我刚构建的插件吗?每次我想测试它时都必须复制我的DLL似乎很奇怪。

感谢任何帮助。

4 个答案:

答案 0 :(得分:6)

您可以使用!addplugindir 指令,请参阅nsis compile-time commands

答案 1 :(得分:2)

在命令行中使用带有已定义符号的!addplugindir 指令( / D )。 符号是“.dll文件位置的路径”

对于VS 2010,使用 Visual& amp;安装程序 - 免费的VS插件,用于直接在Visual Studio中开发NSIS安装程序。

在项目属性中设置符号:

NSIS Project properties in VS 2010 在此下载:www.unsigned-softworks.sk/visual-installer/

答案 2 :(得分:0)

正如其他人所提到的,您的 NSI 脚本文件中的 !addplugindir 指令将起作用,您可以使用 /D 在命令行上定义一个变量以传递给该指令

至于要添加到 NSI 文件的代码,您需要这样的内容:

!ifdef EXTRANSISPLUGINSFOLDER
  !addplugindir "${EXTRANSISPLUGINSFOLDER}"
!endif

然后在命令行上,您可以像这样调用您的 NSI 脚本:

makensis.exe /DEXTRANSISPLUGINSFOLDER=C:\somefolder\moreplugins\ YourInstallerScript.nsi

在定义额外文件夹时,您可能会发现文件夹路径中有任何空格会导致问题,而在路径周围使用引号也无济于事。要解决此问题,请尝试在 Windows 终端中使用 dir /x 命令列出名称中包含空格的文件夹的 8.3 DOS 名称。这将帮助您建立一个不包含空格的文件夹路径。 (例如,C:\Program Files\ 在 C:\Program Files\ 从 C: 的根目录以 dir /x 列出时通常会变成 C:\PROGRA~1)

答案 3 :(得分:-1)

可能在这里忽略了这一点,但您是否可以使用XCOPY post build事件将输出复制到NSIS插件目录?