4

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

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

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

任何帮助表示赞赏。

4

4 回答 4

6

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

于 2012-05-17T21:19:45.307 回答
2

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

VS 2010 是使用Visual & Installer的最佳选择- 免费的 VS 插件直接在 Visual Studio 中开发 NSIS 安装程序。

在项目属性中设置您的符号:

VS 2010 中的 NSIS 项目属性 在此处下载:www.unsigned-softworks.sk/visual-installer/

于 2012-05-18T04:55:44.500 回答
0

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

至于要添加到 NSI 文件中的代码,您需要以下内容:

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

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

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

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

于 2021-01-22T09:48:18.580 回答
-1

可能在这里错过了重点,但您是否可以不使用 XCOPY 构建后事件将输出复制到 NSIS 插件目录?

于 2013-05-12T01:43:11.870 回答