C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
ログ内検索
キーワードを複数指定する場合は 半角スペース で区切ってください。
検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
[返信]をクリックすると返信ページへ移動します。
キーワード
/
検索条件
/
(AND)
(OR)
検索範囲
/
(現在のログ)
(全過去ログ)
(過去ログ1)
(過去ログ2)
(過去ログ3)
(過去ログ4)
(過去ログ5)
(過去ログ6)
(過去ログ7)
(過去ログ8)
(過去ログ9)
(過去ログ10)
(過去ログ11)
(過去ログ12)
(過去ログ13)
(過去ログ14)
(過去ログ15)
(過去ログ16)
(過去ログ17)
(過去ログ18)
(過去ログ19)
(過去ログ20)
(過去ログ21)
(過去ログ22)
(過去ログ23)
(過去ログ24)
(過去ログ25)
(過去ログ26)
(過去ログ27)
(過去ログ28)
(過去ログ29)
(過去ログ30)
(過去ログ31)
(過去ログ32)
(過去ログ33)
(過去ログ34)
(過去ログ35)
(過去ログ36)
(過去ログ37)
(過去ログ38)
(過去ログ39)
(過去ログ40)
(過去ログ41)
(過去ログ42)
(過去ログ43)
(過去ログ44)
(過去ログ45)
(過去ログ46)
(過去ログ47)
(過去ログ48)
(過去ログ49)
(過去ログ50)
(過去ログ51)
(過去ログ52)
(過去ログ53)
(過去ログ54)
(過去ログ55)
(過去ログ56)
(過去ログ57)
(過去ログ58)
(過去ログ59)
(過去ログ60)
(過去ログ61)
(過去ログ62)
(過去ログ63)
(過去ログ64)
(過去ログ65)
(過去ログ66)
(過去ログ67)
(過去ログ68)
(過去ログ69)
(過去ログ70)
(過去ログ71)
(過去ログ72)
(過去ログ73)
(過去ログ74)
(過去ログ75)
(過去ログ76)
(過去ログ77)
(過去ログ78)
(過去ログ79)
(過去ログ80)
(過去ログ81)
(過去ログ82)
(過去ログ83)
(過去ログ84)
(過去ログ85)
(過去ログ86)
(過去ログ87)
(過去ログ88)
(過去ログ89)
(過去ログ90)
(過去ログ91)
(過去ログ92)
(過去ログ93)
(過去ログ94)
(過去ログ95)
(過去ログ96)
(過去ログ97)
(過去ログ98)
(過去ログ99)
(過去ログ100)
(過去ログ101)
(過去ログ102)
(過去ログ103)
(過去ログ104)
(過去ログ105)
(過去ログ106)
(過去ログ107)
(過去ログ108)
(過去ログ109)
(過去ログ110)
(過去ログ111)
(過去ログ112)
(過去ログ113)
(過去ログ114)
(過去ログ115)
(過去ログ116)
(過去ログ117)
(過去ログ118)
(過去ログ119)
(過去ログ120)
(過去ログ121)
(過去ログ122)
(過去ログ123)
(過去ログ124)
(過去ログ125)
(過去ログ126)
(過去ログ127)
(過去ログ128)
(過去ログ129)
(過去ログ130)
(過去ログ131)
(過去ログ132)
(過去ログ133)
(過去ログ134)
(過去ログ135)
(過去ログ136)
(過去ログ137)
(過去ログ138)
(過去ログ139)
(過去ログ140)
(過去ログ141)
(過去ログ142)
(過去ログ143)
(過去ログ144)
(過去ログ145)
(過去ログ146)
(過去ログ147)
(過去ログ148)
(過去ログ149)
(過去ログ150)
(過去ログ151)
(過去ログ152)
(過去ログ153)
(過去ログ154)
(過去ログ155)
(過去ログ156)
(過去ログ157)
(過去ログ158)
(過去ログ159)
(過去ログ160)
(過去ログ161)
(過去ログ162)
(過去ログ163)
(過去ログ164)
(過去ログ165)
(過去ログ166)
(過去ログ167)
(過去ログ168)
(過去ログ169)
(過去ログ170)
(過去ログ171)
(過去ログ172)
(過去ログ173)
(過去ログ174)
(過去ログ175)
(過去ログ176)
(過去ログ177)
(過去ログ178)
(過去ログ179)
強調表示
/
ON
(自動リンクOFF)
結果表示件数
/
20件
30件
40件
50件
100件
記事No検索
/
ON
大文字と小文字を区別する
No.73553 の関連記事表示
ヒット / 17件
(1-17 を表示)
<<
0
>>
■73553
VB6のインストーラ
□投稿者/ さいとお -
(2014/10/09(Thu) 16:12:56)
分類:[VB6 以前]
Visual Studio Installer 1.1 を使わずに VB6 アプリのインストーラを
作成する方法を調べています。何か情報をお持ちの方、いらっしゃいますか。
やったこと:
Visual Studio Installer 1.1 のプロジェクトを 変換ウィザードを使い
Visual Studio 2008 形式に変換したところ、「正常に変換されました」と
表示あれますが、ソリューションエクスプローラには「利用不可」と表示
されて、VS2008 の環境でプロジェクトをビルドできません。
Visual Studio 2008 にてセットアッププロジェクトを作成し、各 OCX の
プロパティに COM や COMSelfReg を指定しましたが、Windows7(64bit)で
コモンダイアログの表示部分で固まります。
背景:
2014/08/11 に公開された Windows の更新プログラム "KB2918614" を
適用した Windows Vista、Windows 7、Windows 8, Windows 8.1 にて、
"エラー 2709 オフライン参加完了情報が見つかりませんでした。" が
発生して VB6 アプリをインストールできなくなったため。
親記事 /過去ログ123より /
関連記事表示
削除チェック/
■73554
Re[1]: VB6のインストーラ
□投稿者/ とっちゃん -
(2014/10/09(Thu) 19:28:43)
>
■
No73553
(さいとお さん) に返信
> Visual Studio Installer 1.1 を使わずに VB6 アプリのインストーラを
> 作成する方法を調べています。何か情報をお持ちの方、いらっしゃいますか。
>
InstallShield(Limited Editionを含む) や、WiX あたりが現役のインストーラ作成ツールになりますかね。
> やったこと:
> Visual Studio Installer 1.1 のプロジェクトを 変換ウィザードを使い
> Visual Studio 2008 形式に変換したところ、「正常に変換されました」と
> 表示あれますが、ソリューションエクスプローラには「利用不可」と表示
> されて、VS2008 の環境でプロジェクトをビルドできません。
>
Visual Studio Installer(以下VSI) は、VSのセットアッププロジェクトの前身にあたる
存在ですが、アドインのため、コンバート機能はないはずです。
(VSのソリューションのコンバートだけが行われているはず)
これは、VSIに限った話ではなく、ほかの製品でもアドインで追加できる
プロジェクトならみな同様です(WiXや、InstallShield のVSプロジェクトなど)。
> Visual Studio 2008 にてセットアッププロジェクトを作成し、各 OCX の
> プロパティに COM や COMSelfReg を指定しましたが、Windows7(64bit)で
> コモンダイアログの表示部分で固まります。
>
OCXは、自作のものですか?それとも、VB添付のものですか?
もし、添付のものであれば、VB6のOCXのマージモジュールがあると思います。
それを利用すれば、VSIのままでもインストールできると思うのですが...
だめなのかなぁ?
VB6の添付OCXのマージモジュールは、もしかするとInstallShield の
プロ版とかなら添付しているかもしれません(わかりません)。
試しに購入してみるというような金額ではないので(Expressとかじゃ
おそらく実現できない)、無下にお勧めできるわけではありませんが。
> 背景:
> 2014/08/11 に公開された Windows の更新プログラム "KB2918614" を
> 適用した Windows Vista、Windows 7、Windows 8, Windows 8.1 にて、
> "エラー 2709 オフライン参加完了情報が見つかりませんでした。" が
> 発生して VB6 アプリをインストールできなくなったため。
>
エラー 2709 は検索するといくつかヒットしますね。
ただ、どこもKBをアンインストールする以外の選択肢で解決しているところは見かけませんが...
記事No.73553 のレス /過去ログ123より /
関連記事表示
削除チェック/
■73556
Re[2]: VB6のインストーラ
□投稿者/ さいとお -
(2014/10/09(Thu) 21:43:50)
■
No73554
(とっちゃん さん) に返信
> ■
No73553
(さいとお さん) に返信
>>Visual Studio Installer 1.1 を使わずに VB6 アプリのインストーラを
>>作成する方法を調べています。何か情報をお持ちの方、いらっしゃいますか。
>>
> InstallShield(Limited Editionを含む) や、WiX あたりが現役のインストーラ作成ツールになりますかね。
情報ありがとうございます。
>>やったこと:
>>Visual Studio Installer 1.1 のプロジェクトを 変換ウィザードを使い
>>Visual Studio 2008 形式に変換したところ、「正常に変換されました」と
>>表示あれますが、ソリューションエクスプローラには「利用不可」と表示
>>されて、VS2008 の環境でプロジェクトをビルドできません。
>>
> Visual Studio Installer(以下VSI) は、VSのセットアッププロジェクトの前身にあたる
> 存在ですが、アドインのため、コンバート機能はないはずです。
> (VSのソリューションのコンバートだけが行われているはず)
>
> これは、VSIに限った話ではなく、ほかの製品でもアドインで追加できる
> プロジェクトならみな同様です(WiXや、InstallShield のVSプロジェクトなど)。
セットアッププロジェクトを変換できない件、了解しました。
>>Visual Studio 2008 にてセットアッププロジェクトを作成し、各 OCX の
>>プロパティに COM や COMSelfReg を指定しましたが、Windows7(64bit)で
>>コモンダイアログの表示部分で固まります。
>>
> OCXは、自作のものですか?それとも、VB添付のものですか?
> もし、添付のものであれば、VB6のOCXのマージモジュールがあると思います。
> それを利用すれば、VSIのままでもインストールできると思うのですが...
アプリで使用しているOCXはコモンダイアログなど全てVB6付属のOCXです。
VB6アプリからコモンダイアログを表示したとき、固まってしまいます。
Windows7 の XP Mode では、基本動作に問題がなかったので、OCX周りの
登録などが怪しいのかな と思っています。
マージモジュールの登録や関連付けなどは、次のURLを参考に作業してみます。
http://support.microsoft.com/kb/248023/ja
> VB6の添付OCXのマージモジュールは、もしかするとInstallShield の
> プロ版とかなら添付しているかもしれません(わかりません)。
>
> 試しに購入してみるというような金額ではないので(Expressとかじゃ
> おそらく実現できない)、無下にお勧めできるわけではありませんが。
>>背景:
>>2014
/08/11 に公開された Windows の更新プログラム "KB2918614" を
>>適用した Windows Vista、Windows 7、Windows 8, Windows 8.1 にて、
>>"エラー 2709 オフライン参加完了情報が見つかりませんでした。" が
>>発生して VB6 アプリをインストールできなくなったため。
> >
> エラー 2709 は検索するといくつかヒットしますね。
> ただ、どこもKBをアンインストールする以外の選択肢で解決しているところは見かけませんが...
インストーラを更新すれば何とかなるかな と思い、模索していました。
記事No.73553 のレス /過去ログ123より /
関連記事表示
削除チェック/
■73561
Re[3]: VB6のインストーラ
□投稿者/ とっちゃん -
(2014/10/10(Fri) 11:17:08)
>
■
No73556
(さいとお さん) に返信
> アプリで使用しているOCXはコモンダイアログなど全てVB6付属のOCXです。
> VB6アプリからコモンダイアログを表示したとき、固まってしまいます。
>
コモンダイアログを呼び出すタイミング(ダイアログが出る前)に固まるのでしょうか?
それとも、ダイアログが出てきて固まるのでしょうか?
前者と後者では条件が違います。
また、単に「固まる」といっても、いろいろな状態があります。
わかったからと言って解決策があるとは限りませんが
もしかしたら、詳しい人が反応してくれるかもしれません。
> Windows7 の XP Mode では、基本動作に問題がなかったので、OCX周りの
> 登録などが怪しいのかな と思っています。
>
XP Mode は、一見すると Windows 7 で動いているように見えますが
その実態は、リモートデスクトップでつないだXPで動いている画面を
切り張りしているだけの特殊なモードになります。
そのため、アプリは、「XP 上」で動作している状態となっています。
通常のXPとまったく同じわけではありませんが、アプリ自身は
自分はXPで動いていると思っていますよ。
> マージモジュールの登録や関連付けなどは、次のURLを参考に作業してみます。
>
http://support.microsoft.com/kb/248023/ja
>
えーっと。。。マージモジュールというのは、インストーラでは
一種のライブラリと呼べるもので、ここに書かれているような設定を
全部詰め込んだ状態で用意されています。
なので、単純に指定すれば使えるようになっています。
全ての再配布可能モジュールがマージモジュールを用意しているわけではありませんが
最近では、多くのコンポーネント(特にグローバルレジストするCOM系)が
マージモジュールを用意しています。
VB6用のマージモジュールも、存在しています(今でも入手可能かどうかは分かりません)。
これがあれば、難しいことは考えず、このマージモジュールをリンクするだけで
必要ファイルをインストールしてくれます。
ただし、今回の問題が回避できるのか?については分かりませんが。。。
> インストーラを更新すれば何とかなるかな と思い、模索していました。
>
VSIで作っても、現行最新系のmsi作成用ツールを使っても
出来上がるものは基本的には同じです。
もっとも、提供時期等々を考えるとかなり古いので更新してもいい時期ではありますが。
で、検索したら、あっさり見つかりました。
http://www.microsoft.com/ja-jp/download/details.aspx?id=5883
ここに、VB6のマージモジュールがあります。これを使えば
OCXの登録情報が全部このマージモジュール内で設定されています。
これを使えば解決するかどうかについては分かりませんが。
記事No.73553 のレス /過去ログ123より /
関連記事表示
削除チェック/
■73592
Re[4]: VB6のインストーラ
□投稿者/ さいとお -
(2014/10/14(Tue) 21:21:50)
丁寧な解説、ありがとうございます。
■
No73561
(とっちゃん さん) に返信
> ■
No73556
(さいとお さん) に返信
>>アプリで使用しているOCXはコモンダイアログなど全てVB6付属のOCXです。
>>VB6アプリからコモンダイアログを表示したとき、固まってしまいます。
>>
> コモンダイアログを呼び出すタイミング(ダイアログが出る前)に固まるのでしょうか?
> それとも、ダイアログが出てきて固まるのでしょうか?
>
> 前者と後者では条件が違います。
>
> また、単に「固まる」といっても、いろいろな状態があります。
> わかったからと言って解決策があるとは限りませんが
> もしかしたら、詳しい人が反応してくれるかもしれません。
コモンダイアログが表示されず、5-6秒経過すると「無応答です。
アプリケーションを終了しますか?」のような確認メッセージが
表示されてしまいます。
>>マージモジュールの登録や関連付けなどは、次のURLを参考に作業してみます。
>>
http://support.microsoft.com/kb/248023/ja
>>
> えーっと。。。マージモジュールというのは、インストーラでは
> 一種のライブラリと呼べるもので、ここに書かれているような設定を
> 全部詰め込んだ状態で用意されています。
> なので、単純に指定すれば使えるようになっています。
>
> 全ての再配布可能モジュールがマージモジュールを用意しているわけではありませんが
> 最近では、多くのコンポーネント(特にグローバルレジストするCOM系)が
> マージモジュールを用意しています。
>
> VB6用のマージモジュールも、存在しています(今でも入手可能かどうかは分かりません)。
> これがあれば、難しいことは考えず、このマージモジュールをリンクするだけで
> 必要ファイルをインストールしてくれます。
>
> ただし、今回の問題が回避できるのか?については分かりませんが。。。
>
> で、検索したら、あっさり見つかりました。
>
http://www.microsoft.com/ja-jp/download/details.aspx?id=5883
>
> ここに、VB6のマージモジュールがあります。これを使えば
> OCXの登録情報が全部このマージモジュール内で設定されています。
>
> これを使えば解決するかどうかについては分かりませんが。
ダウンロードしてみましたが、msnファイルをmsiファイルに組み込む方法が
よく解らなかったりします。もう少し調べてみます。
>>インストーラを更新すれば何とかなるかな と思い、模索していました。
>>
> VSIで作っても、現行最新系のmsi作成用ツールを使っても
> 出来上がるものは基本的には同じです。
>
> もっとも、提供時期等々を考えるとかなり古いので更新してもいい時期ではありますが。
セットアップするとき"エラー 2709 ..."が回避でき、かつ VB6アプリから
呼び出しているOCXなどの基本動作が出来れば、何でも構わないというのが
本音だったりします。
記事No.73553 のレス /過去ログ123より /
関連記事表示
削除チェック/
■73600
Re[5]: VB6のインストーラ
□投稿者/ とっちゃん -
(2014/10/15(Wed) 12:01:11)
>
■
No73592
(さいとお さん) に返信
>>また、単に「固まる」といっても、いろいろな状態があります。
>>わかったからと言って解決策があるとは限りませんが
>>もしかしたら、詳しい人が反応してくれるかもしれません。
>
> コモンダイアログが表示されず、5-6秒経過すると「無応答です。
> アプリケーションを終了しますか?」のような確認メッセージが
> 表示されてしまいます。
>
「応答なし」になるってことですね。
CPUが忙しい状態なら、ビジーループ(いわゆる無限ループに陥った状態)となり
CPUが暇な状態なら、デッドロックとなります。
どちらになってるかはわかりません。
> ダウンロードしてみましたが、msnファイルをmsiファイルに組み込む方法が
> よく解らなかったりします。もう少し調べてみます。
>
展開したら、なんとか.msm がたくさん出てきたと思います。
これらを、
C:\Program Files (x86)\Common Files\Merge Modules
(32bitOSの場合は、(x86)がない場所)
にコピーします。
フォルダは既にあると思います。
その中にいくつかの msm が存在してると思いますので、一緒にコピーしておきます。
もしかするとすでにファイルがあるかもしれません。
ファイルがある場合は、今あるままでも多分問題はありません。
元々あるものをどっかにとっておいて、日付を見て(更新されていなければ...ですがw)
新しいほうを展開しておけばよいでしょう。
本当はバージョンがあるのですが、外からではわからないので。。。
展開したら、VSIから、マージモジュールを参照するなどで
多分できると思いますがどうやったらマージモジュールを参照できるのかわからないので
それについては、マニュアル等をお読みください。
> >>インストーラを更新すれば何とかなるかな と思い、模索していました。
> >>
>>VSIで作っても、現行最新系のmsi作成用ツールを使っても
>>出来上がるものは基本的には同じです。
>>
>>もっとも、提供時期等々を考えるとかなり古いので更新してもいい時期ではありますが。
>
> セットアップするとき"エラー 2709 ..."が回避でき、かつ VB6アプリから
> 呼び出しているOCXなどの基本動作が出来れば、何でも構わないというのが
> 本音だったりします。
>
msmを使えば解決する可能性があるのは、エラー2709 の部分だけです。
OCXを呼び出すと固まる。。。の部分が解決するかどうかは分かりませんよ。
記事No.73553 のレス /過去ログ123より /
関連記事表示
削除チェック/
■73601
Re[6]: VB6のインストーラ
□投稿者/ 魔界の仮面弁士 -
(2014/10/15(Wed) 12:21:14)
■
No73600
(とっちゃん さん) に追記
> OCXを呼び出すと固まる。。。の部分が解決するかどうかは分かりませんよ。
コモンダイアログ限定ということのようなので、何かしらの Shell Extension が
悪さをしているの可能性もあるかもしれません(cymon.sys の古いバージョンとか)。
あるいはセキュリティソフトの類。
もしも Comdlg32.ocx の配置だけの問題なら、API (GetOpenFileName など)を
直接呼び出すようなラッパークラスを用意し、それを ocx がわりに
利用するようにしてみては如何でしょう。API 呼び出しでもフリーズを回避できない場合は
OCX の配布方法を模索したところで、問題を解決しない可能性が高そうです。
記事No.73553 のレス /過去ログ123より /
関連記事表示
削除チェック/
■73604
Re[7]: VB6のインストーラ
□投稿者/ さいとお -
(2014/10/15(Wed) 19:04:31)
■
No73601
(魔界の仮面弁士 さん) に返信
> ■
No73600
(とっちゃん さん) に追記
>>OCXを呼び出すと固まる。。。の部分が解決するかどうかは分かりませんよ。
>
> もしも Comdlg32.ocx の配置だけの問題なら、API (GetOpenFileName など)を
> 直接呼び出すようなラッパークラスを用意し、それを ocx がわりに
> 利用するようにしてみては如何でしょう。API 呼び出しでもフリーズを回避できない場合は
> OCX の配布方法を模索したところで、問題を解決しない可能性が高そうです。
いろいろと情報ありがとうございます。
OCXの配布方法を模索しても、問題を解決しない可能性が高いと判断しました。
Win7(64bit版)で試行した内容を列挙します。
1."KB2918614" を削除して、OSをリブートする。
2.Visual Studio Installer 1.1 で作成したインストーラで、 VB6アプリAをセットアップ。
「ファイルを開く」コモンダイアログは正常に表示されたため、基本動作OKと判断した。
3.OSを終了する。このとき "KB2918614" がインストールされる。
4.OSを立ち上げなおし、Visual Studio 2008 で作成したインストーラで、VB6アプリBをセットアップ。
OCXの登録は VB6アプリA で行われているはずなのに、コモンダイアログの呼び出しで固まる。
(コモンダイアログが表示されない。10秒くらいでメッセージ「VB6アプリBは応答していません
プログラムを閉じると、情報が失われる可能性があります。」が表示される。)
5.エクスプローラを使い、VB6アプリB の実行ファイル・設定ファイルなどを VB6アプリA の
セットアップ先にコピーし、VB6アプリA のセットアップ先フォルダから VB6アプリB を起動する。
「ファイルを開く」コモンダイアログは正常に表示された。
OCX の登録は VB6アプリA のセットアップで完了しているはずですから、セットアップ先の
VB6アプリB が「ファイルを開く」コモンダイアログを表示できないのは、別の理由があると
考えます。しかし、やるべき作業がわからないため、ギブアップになりそうです。
補足:
別の VB6アプリC では、「ファイルを開く」コモンダイアログを表示できず
表示した後にキャンセルボタンを押したような動作になっていました。
「表示しようとして固まる」か「表示できず、キャンセルボタンを押したような
動作になる」のは、VB6でのコモンダイアログの使い方依存みたいです。
記事No.73553 のレス /過去ログ123より /
関連記事表示
削除チェック/
■73608
Re[8]: VB6のインストーラ
□投稿者/ とっちゃん -
(2014/10/16(Thu) 10:49:30)
>
■
No73604
(さいとお さん) に返信
> 1."KB2918614" を削除して、OSをリブートする。
> 2.Visual Studio Installer 1.1 で作成したインストーラで、 VB6アプリAをセットアップ。
> 「ファイルを開く」コモンダイアログは正常に表示されたため、基本動作OKと判断した。
> 3.OSを終了する。このとき "KB2918614" がインストールされる。
> 4.OSを立ち上げなおし、Visual Studio 2008 で作成したインストーラで、VB6アプリBをセットアップ。
> OCXの登録は VB6アプリA で行われているはずなのに、コモンダイアログの呼び出しで固まる。
> (コモンダイアログが表示されない。10秒くらいでメッセージ「VB6アプリBは応答していません
> プログラムを閉じると、情報が失われる可能性があります。」が表示される。)
> 5.エクスプローラを使い、VB6アプリB の実行ファイル・設定ファイルなどを VB6アプリA の
> セットアップ先にコピーし、VB6アプリA のセットアップ先フォルダから VB6アプリB を起動する。
> 「ファイルを開く」コモンダイアログは正常に表示された。
>
4 で、そのまま VB6アプリAは起動するのでしょうか?
原因切り分けができていないように見受けられます。
まず、原因の切り分けとして、OCX の使い方あるいはOCXそのものの問題か
インストール方法等の問題かの切り分けが一つ必要です。
そのために行うことは、
1.KB2918614 がない状態でアプリAをインストールして、起動、コモンダイアログのオープンまでを確認。
2.再起動して KB2918614 が適用された状態で、「インストール済みの」アプリAを起動、コモンダイアログのオープンまでを確認。
3.アプリAをアンインストールして、改めてアプリAのインストールして、起動、コモンダイアログのオープンまでを確認。
の3パターンは最低でも必要です。
それと、10月のWindowsUpdateで、KB2918614 が更新されているらしいです。
インストールしようとするとエラーになる問題が修正されているらしいとのことですが
私自身が確認したわけではないので正直詳細は分かってません。
> 補足:
> 別の VB6アプリC では、「ファイルを開く」コモンダイアログを表示できず
> 表示した後にキャンセルボタンを押したような動作になっていました。
> 「表示しようとして固まる」か「表示できず、キャンセルボタンを押したような
> 動作になる」のは、VB6でのコモンダイアログの使い方依存みたいです。
>
表示できずキャンセルというのは、表示しないまま応答しなくなるということですか?
それとも、一瞬表示してすぐに画面が消えてしまうのでしょうか?
記事No.73553 のレス /過去ログ123より /
関連記事表示
削除チェック/
■73609
Re[9]: VB6のインストーラ
□投稿者/ さいとお -
(2014/10/16(Thu) 11:53:09)
説明を端折ってしまい、混乱させてしまいました。申し訳ありません。
■
No73608
(とっちゃん さん) に返信
> ■
No73604
(さいとお さん) に返信
>
>>1."KB2918614" を削除して、OSをリブートする。
>>2.Visual Studio Installer 1.1 で作成したインストーラで、 VB6アプリAをセットアップ。
>> 「ファイルを開く」コモンダイアログは正常に表示されたため、基本動作OKと判断した。
>>3.OSを終了する。このとき "KB2918614" がインストールされる。
>>4.OSを立ち上げなおし、Visual Studio 2008 で作成したインストーラで、VB6アプリBをセットアップ。
>> OCXの登録は VB6アプリA で行われているはずなのに、コモンダイアログの呼び出しで固まる。
>> (コモンダイアログが表示されない。10秒くらいでメッセージ「VB6アプリBは応答していません
>> プログラムを閉じると、情報が失われる可能性があります。」が表示される。)
>>5.エクスプローラを使い、VB6アプリB の実行ファイル・設定ファイルなどを VB6アプリA の
>> セットアップ先にコピーし、VB6アプリA のセットアップ先フォルダから VB6アプリB を起動する。
>> 「ファイルを開く」コモンダイアログは正常に表示された。
>>
> 4 で、そのまま VB6アプリAは起動するのでしょうか?
4の状態で、VB6アプリA は起動できますし「ファイルを開く」コモンダイアログも表示できます。
> そのために行うことは、
>
> 1.KB2918614 がない状態でアプリAをインストールして、起動、コモンダイアログのオープンまでを確認。
> 2.再起動して KB2918614 が適用された状態で、「インストール済みの」アプリAを起動、コモンダイアログのオープンまでを確認。
> 3.アプリAをアンインストールして、改めてアプリAのインストールして、起動、コモンダイアログのオープンまでを確認。
>
> の3パターンは最低でも必要です。
改めて確認して、結果を報告させていただきます。
> それと、10月のWindowsUpdateで、KB2918614 が更新されているらしいです。
> インストールしようとするとエラーになる問題が修正されているらしいとのことですが
> 私自身が確認したわけではないので正直詳細は分かってません。
情報ありがとうございます。しかしWindows7(64bit版)で確認する限り、"エラー 2709 オフライン
参加完了情報が見つかりませんでした。" が表示されインストールできない状況が続いています。
>>補足:
>>別の VB6アプリC では、「ファイルを開く」コモンダイアログを表示できず
>>表示した後にキャンセルボタンを押したような動作になっていました。
>>「表示しようとして固まる」か「表示できず、キャンセルボタンを押したような
>>動作になる」のは、VB6でのコモンダイアログの使い方依存みたいです。
>>
> 表示できずキャンセルというのは、表示しないまま応答しなくなるということですか?
> それとも、一瞬表示してすぐに画面が消えてしまうのでしょうか?
コモンダイアログの表示ができずエラーになる。「キャンセルボタンが押されたときのように、
エラー処理にジャンプしていた」ということです。後で、エラー情報を調べてみます。
記事No.73553 のレス /過去ログ123より /
関連記事表示
削除チェック/
■73610
Re[10]: VB6のインストーラ
□投稿者/ とっちゃん -
(2014/10/16(Thu) 12:08:22)
>
■
No73609
(さいとお さん) に返信
> 改めて確認して、結果を報告させていただきます。
>
状況を情報共有したほうがよいのであれば、ぜひ報告をお願いします。
>>それと、10月のWindowsUpdateで、KB2918614 が更新されているらしいです。
>>インストールしようとするとエラーになる問題が修正されているらしいとのことですが
>>私自身が確認したわけではないので正直詳細は分かってません。
>
> 情報ありがとうございます。しかしWindows7(64bit版)で確認する限り、"エラー 2709 オフライン
> 参加完了情報が見つかりませんでした。" が表示されインストールできない状況が続いています。
>
ということは、今回の件は別の問題なのかもしれませんね。
人づてに更新されたということを聞いただけなので。。。
> コモンダイアログの表示ができずエラーになる。「キャンセルボタンが押されたときのように、
> エラー処理にジャンプしていた」ということです。後で、エラー情報を調べてみます。
>
ダイアログの表示に失敗して、エラー終了したという形じゃないかと思います。
思うだけなので、正直よくわかりませんけど。。。
記事No.73553 のレス /過去ログ123より /
関連記事表示
削除チェック/
■73611
Re[11]: VB6のインストーラ
□投稿者/ さいとお -
(2014/10/16(Thu) 18:52:53)
■
No73610
(とっちゃん さん) に返信
> ■
No73609
(さいとお さん) に返信
>>コモンダイアログの表示ができずエラーになる。「キャンセルボタンが押されたときのように、
>>エラー処理にジャンプしていた」ということです。後で、エラー情報を調べてみます。
>>
> ダイアログの表示に失敗して、エラー終了したという形じゃないかと思います。
> 思うだけなので、正直よくわかりませんけど。。。
配列形式でないコモンダイアログであれば、正常に表示できました。
配列形式でコモンダイアログを定義したとき、コモンダイアログの表示で
エラーが発生していました。コモンダイアログを配列形式で定義したのは
一つのフォーム上に配置可能なコントロールの制限(256)があるためです。
とりあえず配列形式で宣言されたコモンダイアログを見直すことにします。
記事No.73553 のレス /過去ログ123より /
関連記事表示
削除チェック/
■73615
Re[12]: VB6のインストーラ
□投稿者/ さいとお -
(2014/10/17(Fri) 14:30:34)
いろいろ確認したところ、セットアップファイルに加えていた OLEAUT32.dll OLEPRO32.dll が
影響して、コモンダイアログを表示できなかったことが分かりました。改めて、配列形式の
コモンコントロールの表示を確認したところ、正常に表示でき問題ありませんでした。
その後、改めてセットアップモジュールを作成し、基本動作に問題ないことを確認しました。
そのときの手順は次の通りです。
0.開発環境として、Windows 7(64bit版)で動作する 二つの "XP Mode" を使用した。
Visual Studio 6.0 と Visual Studio Installer 1.1 をインストールした環境。
Visual Studio 2008 と Visual Studio 6.0 をインストールした環境。
(Visual Studio Installer 1.1 と Visual Studio 2008 は共存できないみたい)
MSIファイルをインストールする確認環境は、Windows 7(64bit版)。
1.Visual Studio Installer 1.1 でセットアップモジュール(以下、MSIファイル)を作成する。
(Visual Studio 6.0 と Visual Studio Installer をセットアップした XP Modeで作業)
2.Webからダウンロードしたマージモジュール(以下、MSMファイル)を、Visual Studio 2008 を
セットアップした XP Mode の"C:\Program Files\Common Files\Merge Modules"にコピーする。
そして手順1で作成したMSIファイルを解凍して内部のファイルを取り出す。
マージモジュールの取得先
http://www.microsoft.com/ja-jp/download/details.aspx?id=5883
3.Visual Studio 2008 を起動しセットアップモジュールを作成する。
指定するファイルは、手順2で取り出した内部ファイル全て。(ただしOLEAUT32.dll、OLEPRO32.dllを除く)
4.Windows の更新プログラム "KB2918614" を適用した Windows 7(64bit版)にて、手順1で作成した
MSIファイルをインストールする。途中で "エラー 2709" が発生してインストールに失敗する。
5.その後、手順3で作成したMSIファイルをインストールする。正常にインストールできる。
6.インストールしたアプリケーションの基本動作を確認したところ、特に問題なし。
コモンダイアログなども正常に表示できる。
最後になりますが、とっちゃんさん、魔界の仮面弁士さん、フォローありがとうございました。
記事No.73553 のレス / END /過去ログ123より /
関連記事表示
削除チェック/
■73617
Re[13]: VB6のインストーラ
□投稿者/ とっちゃん -
(2014/10/17(Fri) 16:42:48)
>
■
No73615
(さいとお さん) に返信
> いろいろ確認したところ、セットアップファイルに加えていた OLEAUT32.dll OLEPRO32.dll が
> 影響して、コモンダイアログを表示できなかったことが分かりました。改めて、配列形式の
> コモンコントロールの表示を確認したところ、正常に表示でき問題ありませんでした。
>
現物を見てみないと判断できない部分もありますが、
多分手順1の時点でのインストーラの作り方に問題があると思われます。
手順2,3 でやってることを手順1で行い、なおかつ取り込むファイルは、自分で作ったもの「だけ」で
それ以外のものはすべてmsmを利用することで、解決するはずです。
一度それで実験してみることをお勧めします。
ただ、DLしてきたmsmが、VSIでは使えない可能性はあります。
考えられる個の可能性は1つだけで、msmの要求するインストーラのバージョンがmsi2.0であるのに対し
VSIが出力するインストーラのバージョンが 1.x という場合です。
この場合を除けば、わざわざ何度も作り直すような作業は必要ありません。
また、VSIでは作成できない場合も、最初から、手順3環境でビルドする(VS6があるため)か
手順1環境から出力ファイルを「ファイルコピー」して、インストーラをビルドすれば
解決すると思います。
一応解決済みとなっているので、マークはつけたままにしておきます。。。
記事No.73553 のレス / END /過去ログ123より /
関連記事表示
削除チェック/
■73619
Re[14]: VB6のインストーラ
□投稿者/ さいとお -
(2014/10/17(Fri) 20:38:48)
2014/10/17(Fri) 20:42:05 編集(投稿者)
2014/10/17(Fri) 20:41:55 編集(投稿者)
■
No73617
(とっちゃん さん) に返信
> ■
No73615
(さいとお さん) に返信
>>いろいろ確認したところ、セットアップファイルに加えていた OLEAUT32.dll OLEPRO32.dll が
>>影響して、コモンダイアログを表示できなかったことが分かりました。改めて、配列形式の
>>コモンコントロールの表示を確認したところ、正常に表示でき問題ありませんでした。
>>
> 現物を見てみないと判断できない部分もありますが、
> 多分手順1の時点でのインストーラの作り方に問題があると思われます。
この部分は特別なことはしていません。VB6のディストリビューションウィザードがインストール
されていれば、VB6プロジェクトファイルを解析して必要なファイルをリストアップしてくれるので
その機能を利用することを考えました。
> 手順2,3 でやってることを手順1で行い、なおかつ取り込むファイルは、自分で作ったもの「だけ」で
> それ以外のものはすべてmsmを利用することで、解決するはずです。
> 一度それで実験してみることをお勧めします。
> ただ、DLしてきたmsmが、VSIでは使えない可能性はあります。
手順3でコモンダイアログなどのOCXを含む全ファイル(OLEAUT32.dll、OLEPRO32.dllも含む)を
選択すると、OCXはマージモジュールに置き換えてくれました。その後の確認(インストール操作、
アプリの実行)では、正常に動いています。目的は達成できたので、解決扱いとさせて頂きます。
ちなみに「自分で作ったものだけ」を選択すると、VS2008は依存関係を調べてくれないため、
マージモジュールの参照などができず必要なOCXを登録ができません。マージモジュールを
参照させる手順を試しながら作業していたため、本当に大丈夫か?と念を押されると弱気になって
しまいますが。(^-^;
記事No.73553 のレス / END /過去ログ123より /
関連記事表示
削除チェック/
■73628
Re[15]: VB6のインストーラ
□投稿者/ とっちゃん -
(2014/10/20(Mon) 14:48:45)
>
■
No73619
(さいとお さん) に返信
> 手順3でコモンダイアログなどのOCXを含む全ファイル(OLEAUT32.dll、OLEPRO32.dllも含む)を
> 選択すると、OCXはマージモジュールに置き換えてくれました。その後の確認(インストール操作、
> アプリの実行)では、正常に動いています。目的は達成できたので、解決扱いとさせて頂きます。
>
この手順3の作業を手順1の最初の段階でできませんか?という意味で聞いたんですが...
> ちなみに「自分で作ったものだけ」を選択すると、VS2008は依存関係を調べてくれないため、
> マージモジュールの参照などができず必要なOCXを登録ができません。マージモジュールを
> 参照させる手順を試しながら作業していたため、本当に大丈夫か?と念を押されると弱気になって
> しまいますが。(^-^;
あるプログラムから、そのプログラムを実行せず、OCXを利用しているか?を確かめる確実な方法はありません。
そのため、「別途」これを使うという指定をすることで初めてセットアップに追加されます。
その作業方法の一つが、インストールしたいファイルを直接指定してしまう方法で
実際にさいとおさんが行った方法です。
こちらは、セットアップエディタがそういう方法に対応していることが重要になるため、できないツールも存在しますが
多くのGUI系のセットアップエディタが対応しています。
もう一つは、マージモジュールを指定する方法。
VS2008などのVSセットアップであれば、プロジェクトのコンテキストメニューに
「追加>マージモジュール」というメニューがあります。
そこで、マージモジュールを指定すれば、直接必要とするマージモジュールを
指定することができます。
こちらは原則として、追加したいコンポーネントがどのマージモジュールに含まれているかや
追加したいマージモジュールがわかっている場合に利用します。
どちらの追加方法でも問題はありませんが
Visual Studio Installer でも同じように追加できると思います。
これができれば手順1と手順3で同じインストーラを2種類作る必要がなくなりますよね?
という意味で書いたつもりだったので、前回のコメントだったんですが。
#いずれにせよ問題は解決済みということでチェックはつけておきます。
記事No.73553 のレス / END /過去ログ123より /
関連記事表示
削除チェック/
■73645
Re[16]: VB6のインストーラ
□投稿者/ さいとお -
(2014/10/21(Tue) 19:01:52)
■
No73628
(とっちゃん さん) に返信
> ■
No73619
(さいとお さん) に返信
>>手順3でコモンダイアログなどのOCXを含む全ファイル(OLEAUT32.dll、OLEPRO32.dllも含む)を
>>選択すると、OCXはマージモジュールに置き換えてくれました。その後の確認(インストール操作、
>>アプリの実行)では、正常に動いています。目的は達成できたので、解決扱いとさせて頂きます。
>>
> この手順3の作業を手順1の最初の段階でできませんか?という意味で聞いたんですが...
(中略)
> どちらの追加方法でも問題はありませんが
> Visual Studio Installer でも同じように追加できると思います。
> これができれば手順1と手順3で同じインストーラを2種類作る必要がなくなりますよね?
Visual Studio Installer でセットアッププロジェクトを作った場合、
次の環境でインストールできません。
2014/08/11 に公開された Windows の更新プログラム(KB2918614) を
適用した Windows Vista、Windows 7、Windows 8, Windows 8.1 にて、
"エラー 2709 オフライン参加完了情報が見つかりませんでした。" が
発生して VB6アプリ をインストールできません。
そのような環境でもセットアップ可能なインストーラを作るため、
Visual Studio 2008 でセットアッププロジェクトを作成したのです。
Visual Studio 2008 で作成したインストーラは、次の環境にインストールでき、
アプリの基本的な動作もOKでした。
Net Frameworkを入れていないWindows XP(32bit)
Windows の更新プログラム(KB2918614) を適用した Windows 7(64bit)
丁寧な解説、ありがとうございました。
記事No.73553 のレス / END /過去ログ123より /
関連記事表示
削除チェック/
<<
0
>>
パスワード/
-
Child Tree
-