我正在使用 VS 2010 为 NSIS 构建一个插件,我很想设置该项目,以便从一个简单的 NSI 文件自动构建测试设置。
一切似乎都很好,除了我不知道如何让 NSIS 在我的项目的输出文件夹中查找我的插件,而C:\Program Files (x86)\NSIS\Plugins\*.dll
不仅仅是。
我可以在我的 NSI 脚本中添加任何命令,以使 NSIS 在“标准插件文件夹”之外查找我新构建的插件吗?每次我想测试它时都必须复制我的 DLL 似乎很奇怪。
任何帮助表示赞赏。
我正在使用 VS 2010 为 NSIS 构建一个插件,我很想设置该项目,以便从一个简单的 NSI 文件自动构建测试设置。
一切似乎都很好,除了我不知道如何让 NSIS 在我的项目的输出文件夹中查找我的插件,而C:\Program Files (x86)\NSIS\Plugins\*.dll
不仅仅是。
我可以在我的 NSI 脚本中添加任何命令,以使 NSIS 在“标准插件文件夹”之外查找我新构建的插件吗?每次我想测试它时都必须复制我的 DLL 似乎很奇怪。
任何帮助表示赞赏。
您可以使用!addplugindir指令,参见nsis compile-time commands。
使用带有定义符号的!addplugindir指令(命令行上的/D)。符号是“.dll 文件所在位置的路径”
VS 2010 是使用Visual & Installer的最佳选择- 免费的 VS 插件直接在 Visual Studio 中开发 NSIS 安装程序。
在项目属性中设置您的符号:
正如其他人所提到的,您的 NSI 脚本文件中的!addplugindir指令可以解决问题,您可以使用/D定义一个变量以在命令行上传递给该指令。
至于要添加到 NSI 文件中的代码,您需要以下内容:
!ifdef EXTRANSISPLUGINSFOLDER
!addplugindir "${EXTRANSISPLUGINSFOLDER}"
!endif
然后在命令行上,你可以像这样调用你的 NSI 脚本:
makensis.exe /DEXTRANSISPLUGINSFOLDER=C:\somefolder\moreplugins\ YourInstallerScript.nsi
定义额外文件夹时,您可能会发现文件夹路径中有任何空格会导致问题,并且在路径周围使用引号也无济于事。要解决此问题,请尝试使用dir /x
Windows 终端中的命令列出名称中带有空格的文件夹的 8.3 DOS 名称。这将帮助您建立一个不包含空格的文件夹路径。dir /x
(例如 C:\Program Files\ 经常变成 C:\PROGRA~1 当从 C 的根目录开始列出时)
可能在这里错过了重点,但您是否可以不使用 XCOPY 构建后事件将输出复制到 NSIS 插件目录?