Inno Setupスクリプト内で、カスタムVBアプリケーションをインストールするVB実行可能プログラムを実行します。Inno Setup - サブインストーラによって生成されたディレクトリツリーを置き換えます
これが完了したら、VBセットアップが完了したら、いくつかのファイルをコピーして、VBセットアップ実行可能ファイルによって作成されたファイルとフォルダを上書きする必要があります。 これらの '更新された'ファイルは、Inno Setupによって[Files]
セクションに一時フォルダに格納され、そのフォルダにターゲットPCに正常に展開されています。
問題は、何を試しても何らかの理由でFileCopy
コマンドが無視されているようです。
だから私は必要な手順は次のとおりである:
//実行する必要がありますVBのセットアップ実行可能ファイルをコピーし、VBのセットアップが
[Files]
Source: "C:\##Deploy\Titan\LABORATORY\BTLABSETUP.msi" ; DestDir: "{app}\Temp" ; Components: Laboratory ; Permissions: users-full
Source: "C:\##Deploy\Titan\LABORATORY\BetolinkLAB\*.*" ; DestDir: "{app}\Temp" ; Components: Laboratory ; Permissions: users-full ; Flags: ignoreversion recursesubdirs
を走った後にVBの設定を更新するファイルをコピーしますVBセットアップ(OK実行)を実行します。
[Run]
Filename: "msiexec.exe"; Parameters: "/i ""{app}\Temp\BTLABSETUP.msi" ; AfterInstall: CopyAllFiles
すぐにVB実行可能ファイルの後に、ファイルをコピーして上書きする必要があります。
私が今必要とするのは、VB実行可能ファイルによって作成された同じディレクトリ構造のファイルを置き換えるために、対象のコンピュータ、Tempフォルダにコピーされたファイルとフォルダをコピーすることです。
たとえば、すべてのファイルをtemp \ Configurationフォルダから取り出し、{app} \ Configurationフォルダにある同じファイルを上書きします。
私はafterinstallたサンプルから使用理由です:一時ソース内のすべてのファイルとフォルダがありますが、私はしましたCopyAllFiles
を呼び出し、これはCopyAllFiles
procedure CopyAllFiles;
begin
MsgBox('About to Copy the files', mbInformation, MB_OK);
FileCopy('{app}\Temp\*.*' , '{app}\*.*' , False)
FileCopy('{app}\Temp\Configuration\*.*' , '{app}\Configuration\*.*' , False)
FileCopy('{app}\Temp\Configuration\Korinthos\*.*' , '{app}\Configuration\Korinthos\*.*' , False)
FileCopy('{app}\Temp\Configuration\Metamorfosi\*.*' , '{app}\Configuration\Metamorfosi\*.*', False)
FileCopy('{app}\Temp\Manual\*.*' , '{app}\Manual\*.*' , False)
FileCopy('{app}\Temp\ScriptsUpload\*.*' , '{app}\ScriptsUpload\*.*' , False)
FileCopy('{app}\Temp\Temp\*.*' , '{app}\Temp\*.*' , False)
FileCopy('{app}\Temp\Templates\*.*' , '{app}\Templates\*.*' , False)
FileCopy('{app}\Temp\Temporary\*.*' , '{app}\Temporary\*.*' , False)
end;
ための私のコードですそれらをチェックし、何も欠けている。 私もターゲットのワイルドカードなしで試してみましたが、どちらもうまくいきませんでしたが、CurStepChanged
で試してみましたが、それ以上のものはありませんでした。
ポップアップするメッセージボックスから、VB実行可能ファイルの後にコードがCopyAllFiles
プロシージャに入ることがわかりましたが、何も起こりません。
任意のヘルプや回避策は歓迎以上になり、非常に遅く、すでにクライアントのために、この設定を準備をしてする必要があり、スタックは...
はあなたにヤニス
「FileCopy」はワイルドカードをサポートしていません。この関数は、単一ファイルを新しい宛先にコピーします。この場合、ここでループのようなフォルダ内のファイルを反復処理する必要があります[Inno Setup - FileCopyはパス名にワイルドカード文字を使用します](http://stackoverflow.com/questions/13688882/inno-setup-filecopy-use-wildcard-character -in-pathname)を指定します。あるいは、 '[Files]'セクションに 'Check'や' BeforeInstall'関数( 'BeforeInstall'がVBのインストールを引き起こす可能性がある)を追加して' external'ソースとして配置することもできます。 – RobeN