如何正确使用NSIS解压缩插件?

问题描述 投票:-1回答:1

是NSIS编程的新手,所以我找到了NSISUNZ插件来提取文件。

这是我的代码:

OutFile "TEst.exe"
Section
!addplugindir nsisunz
initPluginsDir
nsisunz::Unzip "C:\Users\user\Downloads\TestVerzeichnis.zip" "C:\Users\user\Downloads"
SectionEnd

我没有收到错误或其他信息,但没有提取文件。对于插件的安装,我只是将.dll文件解压缩到plugins文件夹中。

我在这里做错了什么?

感谢您的回答

nsis unzip
1个回答
0
投票
理想情况下,您应该使用NSIS v3创建Unicode安装程序:

将插件移动到root plugins文件夹内的Unicode插件子文件夹。

    Unicode True添加到您的.NSI。
  • 如果您仍在使用NSIS v2,则需要找到该插件的其他版本,很可能是Wiki上的其他文件。
  • Unicode True !addplugindir /x86-unicode "C:\Users\Anders\Downloads\Nsisunz\Plugin unicode" !include LogicLib.nsh Function SplitWrite Pop $2 StrCpy $3 "" StrCpy $4 0 loop: StrCpy $5 $2 1 $4 ${If} $5 == "|" ${OrIf} $5 == "" IntOp $6 $4 - 2 StrCpy $6 $2 2 $6 FileWriteByte $1 "0x$6" ${EndIf} IntOp $4 $4 + 1 StrCmp $5 "" 0 loop FunctionEnd Section InitPluginsDir ; Create a example .zip file FileOpen $1 "$PluginsDir\test.zip" w Push 50|4B|03|04|0A|00|00|00|00|00|AC|BA|93|50 Call SplitWrite Push F8|06|53|6B|08|00|00|00|08|00|00|00|08|00|00|00|54|65|73|74|2E|74|78|74|48|65|6C|6C|6F|20|0D|0A|50|4B|01|02|3F|00|0A|00|00|00|00|00|AC|BA|93|50 Call SplitWrite Push F8|06|53|6B|08|00|00|00|08|00|00|00|08|00|24|00|00|00|00|00|00|00|20|20|00|00|00|00|00|00|54|65|73|74|2E|74|78|74|0A|00|20|00|00|00|00|00|01|00|18|00 Call SplitWrite Push D6|75|96|79|90|16|D6|01|96|4F|96|79|90|16|D6|01|96|4F|96|79|90|16|D6|01|50|4B|05|06|00|00|00|00|01|00|01|00|5A|00|00|00|2E|00|00|00|00|00 Call SplitWrite FileClose $1 CreateDirectory "$PluginsDir\TestDir" nsisunz::Unzip "$PluginsDir\test.zip" "$PluginsDir\TestDir" Pop $0 DetailPrint $0 ; "success" ${If} $0 == "success" FileOpen $1 "$PluginsDir\TestDir\Test.txt" r FileRead $1 $2 FileClose $1 DetailPrint $2 ; "Hello" ${EndIf} SectionEnd
  • © www.soinside.com 2019 - 2024. All rights reserved.