VB6.0で作成したアプリケーションをウィザードを使い
VB.Net(2005)ですが、作成PC(WinXp)上では正常に稼動するのですが、
.Netのセットアップウィザードでセットアッププロジェクトを作成し、
他PC(WinXp)にインストールし稼動させると
「"プロジェクト名.UpgradeSupport"のタイプ初期化子が例外スローをしました」
のメッセージが出てしまいます.
そのPCにVB6.0をインストールすると出なくなるのですが・・・
VB6.0をインストールすることなく回避する方法はありませんか?
[VB6.0]に依存した処理を[VB2005]の処理で実現して置き換えれば
いいだけでは?
または、VB6.0をインストールすると出なくなるということは、[VB6.0]の
ランタイムのみのインストールでもいいのでは?
そもそも、アップグレードしたということ自体が、[VB6.0]の部品をそのまま
使って[VB2005]で動くようにしただけです。プログラムコードのような
複雑で、プログラマ毎に法則が違うものを自動で変換するのには
限界があります。そのくらいは予想が付きますよね?しかも、言語の
構造が変更され、サポートされていないクラス(部品)もたくさんある
わけです。
アップグレードツールで作成されたコードは参考程度にしかなりません。
[VB2005]のプログラムは[VB2005]の環境で一から作り直すのが
基本です。
早速のご回答ありがとうございます。
>[VB6.0]に依存した処理を[VB2005]の処理で実現して置き換えれば
>いいだけでは?
開発期限と本数が多いこともありアップグレードウィザードでできる
だけ手間を掛けないようにしたために[VB6.0]に依存した処理になって
しまいました。
また、今からそれを修正している時間がありません。
>または、VB6.0をインストールすると出なくなるということは、[VB6.0]の
>ランタイムのみのインストールでもいいのでは?
試みてみたのですが、それだけではダメなようです。
実行環境だけで対処する方法はないのでしょうか?
よろしくご回答お願いいたします。
>試みてみたのですが、それだけではダメなようです。
では、他のファイルも必要か調査して見てはどうですか?
そのアプリケーションで使われている依存ファイルを調査する方法としては
VB6のディストリビューションウィザードでセットアップを作って
いたならSetup.lstを見ればだいたい予測がつくはず
何を使っているか分からないのであれば、とりあえず
VB6で作成したセットアップで必要なコンポーネントをセットアップ
したあと.NETのセットアップを実行するとか
それでだめだったらやっぱり最初の作業が必要となりますね
ご回答ありがとうございます。
再度エラーの経緯をまとめました。
エラーが起きるまでの経緯
1) 開発環境のPCにて、VB6.0のディストリビューションウイザードを
使って配布用モジュールを作成する。
(VB6.0からコンバージョンしている関係で、VB6.0の段階で使用していた
ランタイムを配布する必要がある為)
2) 1)で作成した配布用モジュールを使用し実行環境PCにセットアップ
(ランタイムの配布)を行う。
この時点ではRDOによるDB接続は正常に行える。
3) .NET Framewaork2.0を実行環境PCにインストールする。
4) 開発環境のPCにて、VisualStudio2005のセットアップウイザードを
使って配布用モジュールを作成する。
5) 4)で作成した配布用モジュールを使用し実行環境PCにセットアップ
6)実行環境PCで実行すると「例外をスローしました」と言うエラーが発生する。
7)ちなみにVB6.0の製品をインストールすると6)の現象は起きなくなる。
以上、何かヒントがあれば、ご連絡ください。
よろしくお願いします。
こちらは参考になりますか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=11838&forum=7
ご回答ありがとうございます。
既に参照させていただきました。
発生しているエラーの内容は同じだと思いますが、解決
したリンク先の内容が、エラー内容等違うので、なぜこれで
解決できたのかよくわかりませんでした。
自分の不勉強なのは自覚しております。
解説いただけるととても助かります。
以上、よろしくお願いします。
発生していた事象は解決しました。
RDO ライセンスキーが実行環境に登録されていないことが原因です。
レジストリーにRDO ライセンスキーを登録したところうまく起動できました。
色々とご迷惑をお掛けしました。
以上、ご報告いたします。
ツイート | ![]() |