DOBON.NET DOBON.NETプログラミング掲示板過去ログ

WIndows Installer のレジストリ登録

環境/言語:[VB6]
分類:[インストーラ]

お世話になります。Windows Installerについて質問があります。
以前までVBに標準で付いていたディストリビューションインストーラを使っていて自動でレジストリ登録していましたが、同じVB6で作成したEXEをインストーラを変えてWindows Installerにしたら、インストール時に、

エラー1904 ○○.exeの登録に失敗しました。

と表示され、インストール出来ません。どのようにすれば正常にインストールできるのでしょうか?
こんばんは、ゆさん。ピラルクです。

VB6で作成したActiveX-exeをRegister=vsdrfCOMでSetupしたら、
ちゃんと登録され動きましたよ。

> エラー1904 ○○.exeの登録に失敗しました。

ActiveX-ExeでないExeを登録しようとしたとかでしょうか?
あるいはActiveXだけど、レジストリに登録する権限がなかった(?)とか。
> こんばんは、ピラルクさん。
ActiveX.exe を登録しようとしたんですがうまく行かず悩んでました。
いろいろ検索してみて、やっと見つかりました。
「関連付け」から「COMオブジェクトの追加」で登録可能となりました。
返信ありがとうございました。
解決済み!
■No2927に返信(ゆさんの記事)
>>こんばんは、ピラルクさん。
> ActiveX.exe を登録しようとしたんですがうまく行かず悩んでました。
> いろいろ検索してみて、やっと見つかりました。
> 「関連付け」から「COMオブジェクトの追加」で登録可能となりました。
> 返信ありがとうございました。

ああ、成功した人がいるんですね(+_+
私もVBで作成したActiveX.EXEを登録しようと関連付けと取っ組み合いですが、
1ヶ月たっても、まだうまくいかないです。VSIのHELPどおりにしてるのですが・・・
細かい手順などを教えていただけたら幸いです。
> 細かい手順などを教えていただけたら幸いです。

1..ActiveX EXEのCLSIDをレジストリを調べてメモしておきます。
2..VSIでActiveX EXEファイルのRegisterプロパティを 0(vsifrNone) に設定します。
3..プロジェクトエクスプローラの関連付けを開きます。
4..関連付けウィンドウの [COMオブジェクトの追加] を右クリックして
[COMオブジェクトの追加]を選択します。
5..追加したCOMオブジェクトの名前を 1で調べたCLSIDにします。
6..COMオブジェクトのCompornentプロパティをActiveX EXEに設定します。
7..COMオブジェクトのContextプロパティを 2(vsiccLocalServer32)に設定します。

以上で終わりです。あとはビルドするだけです。
■No3303に返信(ゆさんの記事)
> 1..ActiveX EXEのCLSIDをレジストリを調べてメモしておきます。
> 2..VSIでActiveX EXEファイルのRegisterプロパティを 0(vsifrNone) に設定します。
> 3..プロジェクトエクスプローラの関連付けを開きます。
> 4..関連付けウィンドウの [COMオブジェクトの追加] を右クリックして
> [COMオブジェクトの追加]を選択します。
> 5..追加したCOMオブジェクトの名前を 1で調べたCLSIDにします。
> 6..COMオブジェクトのCompornentプロパティをActiveX EXEに設定します。
> 7..COMオブジェクトのContextプロパティを 2(vsiccLocalServer32)に設定します。

7番だけやってなかった(^^;
タイプライブラリ要らないのかな?
早速試してみます。ありがとうございまいました。
> 7番だけやってなかった(^^;
> タイプライブラリ要らないのかな?
> 早速試してみます。ありがとうございまいました。

どうもうまくいきませんでした。
やろうとしてる事が、違うのかもしれませんね(^_^;
コマンドラインで「activeX.exe /regserver」として
VBから参照設定で使いたいのですが、
まっとうな使い方でないのかもしれないです。
> どうもうまくいきませんでした。
こんばんわ。
どういうエラーメッセージが出ますか?
インストール中にエラーがでますか?
それともインストールはできるが、ActiveX.exeを起動した直後にエラーがでるんですか?
わたしも、困っていたのでがんばってください。
■No3398に返信(ゆさんの記事)
やっとできました(+_;
どうも、COMの登録を間違って解釈していたみたいで(CLSIDのあたりを)
EXEのIDをCOMに、クラスのIDをタイプライブラリに設定していました。
ずっと、COMに対して、タイプライブラリがぶら下がると思っていたもので。
「activeX.exe /regserver」としたときのレジストリとinstallerでしたときの
レジストリを見比べておかしいことに気が付きました。

どうもお騒がせしてしまいました。
「ゆ」さん、お気遣いありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板