1

従来の賢明なインストーラーを機能させるのに非常に苦労しています。プロセスの終わり近くで、インストーラーが vb スクリプトを実行し、次の手順が発生します。

  1. cscript - runscriptupdates と呼ばれる vbs ファイルを実行します。
  2. Runscriptupdates.vbs - Remote.dll という名前の COM dll を呼び出します
  3. Remote.dll - libmcl.dll という別の dll を呼び出します
  4. エラーメッセージが吐き出される

xyz.csv エラー 53 の挿入に失敗しました ファイルが見つかりません: libmcl-2.7.0.dll、行 0、ファイル =C:\DATA\CLIENT\xyz.csv

したがって、cscript/vbs/remote.dll は libmcl-2.7.0.dll を見つけることができないという結論になります。スクリプトを手動で実行することで、インストーラーの同じ動作を再現できます。これまでに試したことは次のとおりですが、それでも同じエラー メッセージが表示されます。

  1. libmcl を cscript のディレクトリにコピーしました
  2. libmcl を remote.dll のディレクトリにコピーしました
  3. libmcl を runscriptupdates.vbs のディレクトリにコピーしました
  4. 融合ログをオンにして、ポインターがあるかどうかを確認しましたが、.NET ではないため、何も役に立ちません
  5. libmcl を regsrv に登録しようとしましたが、できません

この時点で、コマンド プロンプトからパスを確認すると、libmcl を保持するフォルダーがパスにありません。ただし、 myComputer->Advanced->EnvironmentVariables で確認すると、フォルダーはパスにあります。

インストールを試みた後にマシンを再起動し、インストーラーを再度実行しても問題はありません。インストール時にパスが適切に更新されていないなどのような気がします。パスに追加した後に強制的に更新する方法はありますか?

ありがとう、ニール

4

2 に答える 2

0

見つけた別の質問の助けを借りて、最終的に解決策を見つけました

Windows のコマンド プロンプトから環境変数を更新するコマンドはありますか?

vb スクリプト ResetEnvironmentVariables.vbs を作成し、バッチ ファイルを作成してそれらをすべてパッケージ化しました。

Runscriptupdates.bat
--------------------------
cscript ResetEnvironmentVariables.vbs
call "%TEMP%\ResetEnvironmentVariables.bat"
cscript Runscriptupdates.vbs %1 %2 %3 ... %n

これにより、runscriptupdates が libmcl dll を見つけて、再び作業を開始できるようになりました。わあ!

于 2012-04-11T18:10:59.180 に答える
0

32 ビットの cscript.exe で実行してみてください。

> C:\Windows\SysWOW64\cscript.exe runscriptupdates.vbs

違いはありますか?

于 2012-04-10T20:55:14.823 に答える