0

VisualStudio2010と無料バージョンのInstallshieldを使用しています。アプリケーションには、Excelから呼び出されるActiveXコンポーネントが含まれています。[COM相互運用機能に登録]オプションは、プロジェクトのビルドプロパティページでオンになっています。XPマシンでインストールを実行すると、dllが登録されません。regasm / tlb:コマンドを手動で実行すると、アプリケーションは機能します。

質問:1。登録が実行されたことをinstallshieldログファイルで確認するにはどうすればよいですか?2.登録が失敗した場合、ログにはどのようなエラーメッセージが表示されますか?2. installshieldでは、dllに強い名前を付ける必要がありますか?(そうではありません)3。他にトラブルシューティングの提案はありますか?

前もって感謝します、

カリー

4

1 に答える 1

0

この状況に対処する方法は次のとおりです。

1)クリーンなOSを確立します。

2)ソフトウェアをインストールします。

3)InstallWatch Proなどのレジストリ比較ユーティリティを使用して、レジストリのスナップショットを作成します。

4)Regasmに電話します。

5)レジストリを再度キャプチャし、デルタを作成します。無関係な変更を除外します。

6)これらの変更を作成してInstallShieldプロジェクトに戻します。プロセスを再構築して繰り返し、成功を確認します。

では、なぜこれが壊れているのですか?私は通常、Regasmでの既知の動作の結果としてそれを見つけます。

COM Interop = trueに設定すると、InstallShieldにregasm / regfileを呼び出し、そのデータをスクレイプして、ビルド中にインストーラーに作成するように指示します。しかし、ここに問題があります。

(強調追加)

/ regfileオプションを使用すると、レジストリに直接変更を加える代わりに、レジストリエントリを含む.regファイルを生成できます。レジストリエディタツール(Regedit.exe)を使用して.regファイルをインポートすることにより、コンピュータ上のレジストリを更新できます。.regファイルには、ユーザー定義のレジスタ関数で実行できるレジストリの更新が含まれていないことに注意してください。/ regfileオプションは、管理対象クラスのレジストリエントリのみを出力することに注意してください。このオプションは、TypeLibIDまたはInterfaceIDのエントリを発行しません。

于 2012-07-31T16:01:57.130 に答える