我正在使用VS 2010为NSIS构建一个插件,我很乐意设置项目,以便从简单的NSI文件自动构建测试设置。
一切似乎都很好,除了我无法弄清楚如何让NSIS在我的项目的输出文件夹中查找我的插件而不仅仅是C:\Program Files (x86)\NSIS\Plugins\*.dll
。
我可以在NSI脚本中添加任何命令,让NSIS在“标准插件文件夹”之外查找我刚构建的插件吗?每次我想测试它时都必须复制我的DLL似乎很奇怪。
感谢任何帮助。
答案 0 :(得分:6)
您可以使用!addplugindir 指令,请参阅nsis compile-time commands。
答案 1 :(得分:2)
在命令行中使用带有已定义符号的!addplugindir 指令( / D )。 符号是“.dll文件位置的路径”
对于VS 2010,使用 Visual& amp;安装程序 - 免费的VS插件,用于直接在Visual Studio中开发NSIS安装程序。
在项目属性中设置符号:
答案 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插件目录?