背景:
古いインストール パッケージ (1998 年に作成) をインストールすると、サービスは問題なく開始されます。このパッケージは InstallShield を使用して作成されており、プロジェクト コードは使用できません。ローカル展開を使用しており、依存するすべての DLL は bin ディレクトリにあります。カスタムのinstallservice.exe (このコードも利用できません) を使用して、lp30.exeを Windows サービスとしてインストールしました。
私がやっていること:
VS 2010 を使用して win2k8 で動作するインストール可能なパッケージを作成する必要があります。
問題:
セットアップ プロジェクトで、installservice.exeを呼び出してlp30.exeをサービスとしてインストールするようにカスタマイズされています。しかし、サービスの開始は以下のエラーで終了しています:
"Error: 1053 The service did not respond to the start or control request in a timely fashion"
分析:
installservice.exeはlp30.exeをサービスとして開始できませんでした。PS2FaxW.dll 関数へのライブラリ呼び出しで失敗しています。これは 1998 年にさかのぼるサード パーティの DLL であり、そのソース コードは入手できません。
DLL はアプリケーション パスで使用でき、レジストリは必要ありません。それらがロードされていることがわかりましたが、dependencywalker でプロファイリングしているときに、以下のエラーが表示されます。
GetProcAddress(0x75790000 [KERNEL32.DLL], "IsTNT") called from "PS2FAXW.DLL" at address 0x10003F81 and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryA("\LincPag2.dll") returned NULL. Error: The specified module could not be found (126).
そして最後に
Exited "LP30.EXE" (process 0x1DE8) with code 126 (0x7E).
質問:
サービスを開始するため
に、同じ "installservice.exe" と同じアプリケーション ( lp30.exe ) を使用しています。しかし、動作は古いパッケージとは異なります。このシナリオでは他にどのような構成が欠けている可能性がありますか?