維持する必要がある Installshield Installscript MSI インストーラーがあります。Support Files/Billboards に約 10 個のテキスト ファイルが含まれています。インストーラーが実行されたら、次のコードを使用して、カスタム Installscript 関数で編集/コピーするためにファイルを開きます。
OpenFile(nvReadFileHandle、SUPPORTDIR、LOGGER_PRM)
このコードは、おそらく 1,000 回のインストールで完全に機能し、その多くはこの正確なバージョンのインストーラーでした。そして、昨日、初めて失敗しました。
msi ログを確認すると、ファイルが次の場所に抽出されていることがわかります。
%TEMP%\3\ {GUID1}\ <-- スペースを無視
上記のコードを実行すると、SUPPORTDIR の値は次のようになります。
%TEMP%\ {GUID2}\ <-- スペースを無視
これは今まで失敗したことがありません。では、なぜ今それが起こっているのでしょうか?修正するにはどうすればよいですか? 問題をグーグルで検索すると、矛盾する情報が表示されます。状況を考慮して解決策を得るために試行錯誤を 50 回行うのは避けたいと思います。
編集:ここにいくつかの詳細があります。インストール先のサーバーが仮想マシンのクローンであることがわかりました。使用されている環境変数が間違っていると思われます。「cd %temp%」と入力すると、上記の最初のディレクトリに移動します。しかし、TEMP という名前の環境変数を見ると、それらはすべて上の 2 番目のディレクトリを参照しています。