2017-09-08 12 views
0

最初に存在しないがコピーする前に作成されるフォルダからファイルをコピーしようとしています。存在しないが作成される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 

コンパイラが作成しようとしたときにエラーが発生し、ファイルを見つけることができないという問題があります。しかし、コンパイル前に作成されたファイルは、プログラムのコンパイル後に削除されます。

+0

あなたのサンプルコードは、私にはほとんど意味がありません。 'test2 \ test.txt'というファイルを展開するフォルダ' test'を作成しています(これはファイルをインクルードする*あなたのコンピュータの場所です)。次に '$ OUTDIR'を変更して何をするか - 同じファイルを再度抽出しますか?同じFileコマンドを再度使用するか、以前の場所からコピーしてください。 NSISコンパイラは、同じファイルを2回インクルードするほどスマートです。 – idleberg

+0

問題は解決しました! Fileの代わりにCopyFilesを使用します。私はテスト目的のためにこのプログラムを使用しました。実際のプログラムでは、ソフトウェアをインストールし、より高いレベルのディレクトリにインストールする際に作成されたフォルダをコピーする必要があります。 –

答えて

0

コマンドにはインストーラにファイルが含まれているため、コンパイル時に存在する必要があります。実行時にファイルをコピーするには、CopyFilesを使用できます。

+0

ありがとうございます! –

+0

次に、チェックマークを押して回答を受け入れてください – idleberg

関連する問題