最初に存在しないがコピーする前に作成されるフォルダからファイルをコピーしようとしています。存在しないが作成されるNSISコピーファイル
Name "Test Installer"
OutFile "testinstaller.exe"
InstallDir C:\dev\NSIS\Scripts\Testinstaller
Section "copyTest"
SetOutPath $INSTDIR
CreateDirectory $INSTDIR\test
SetOutPath $INSTDIR\test
File test2\test.txt
SetOutPath $INSTDIR
File /nonfatal test\test.txt
SectionEnd
コンパイラが作成しようとしたときにエラーが発生し、ファイルを見つけることができないという問題があります。しかし、コンパイル前に作成されたファイルは、プログラムのコンパイル後に削除されます。
あなたのサンプルコードは、私にはほとんど意味がありません。 'test2 \ test.txt'というファイルを展開するフォルダ' test'を作成しています(これはファイルをインクルードする*あなたのコンピュータの場所です)。次に '$ OUTDIR'を変更して何をするか - 同じファイルを再度抽出しますか?同じFileコマンドを再度使用するか、以前の場所からコピーしてください。 NSISコンパイラは、同じファイルを2回インクルードするほどスマートです。 – idleberg
問題は解決しました! Fileの代わりにCopyFilesを使用します。私はテスト目的のためにこのプログラムを使用しました。実際のプログラムでは、ソフトウェアをインストールし、より高いレベルのディレクトリにインストールする際に作成されたフォルダをコピーする必要があります。 –