- - PR -
VB6からVB.netに移行したアプリの実行について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-22 19:06
こんにちは。こうきと申します。
VB6からVB.net2003に移行ウィザードを使用してアプリを移行しました。 移行に使用したマシンはVS6、VS.net2003ともにインストールしており 移行後のアプリは問題なく実行できます。 このアプリを.net Framework1.1をインストールしたマシンに コピーし実行したところ、 「共通言語ランタイムデバッグサービス」 「アプリケーションで、ハンドルできない例外が発生しました」 のメッセージが出て、実行できません。 どの部分でエラーが起きているか調べるためTrace.assret(false)を 入れて実行したところ Public Sub New() MyBase.New() trace.assert(false) <-通過 If m_vb6FormDefInstance Is Nothing Then If m_InitializingDefInstance Then m_vb6FormDefInstance = Me Else Try 'スタートアップ フォームについては、最初に作成されたインスタンスが既定インスタンスになります。 If System.Reflection.Assembly.GetExecutingAssembly.EntryPoint.DeclaringType Is Me.GetType Then m_vb6FormDefInstance = Me End If Catch End Try End If End If 'この呼び出しは、Windows フォーム デザイナで必要です。 trace.assert(false) <-通過 InitializeComponent() trace.assert(false) <-非通過 : : <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() trace.assert(false) <-非通過 Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(USRG0000)) Me.components = New System.ComponentModel.Container() 上記ソースの「通過」としている部分のtrace.assertのみ表示されます。 InitializeComponent()内にtrace.assertがない状態でも同様の状況です。 .netで作成したアプリは.net Frameworkがインストールされていると 実行できると思っていたのですが、 他にも必要なものがあるのでしょうか? もしくはVB6から移行した場合に必要なものがあるのでしょうか。 どなたか解決方法をご存知の方がいらっしゃったら教えていただけないでしょうか。 よろしくお願いします。 | ||||||||
|
投稿日時: 2004-05-22 19:32
こうきです。
追記です。 VB6のアプリでコモンコントロールとコモンダイアログを使っています。 どうもこれが引っかかっているみたいです。 ボタンとテキストボックスだけの簡単なアプリを作成し、 移行後、先ほど実行できないと言っていたマシンで実行したところ 問題なく実行できました。 そのアプリにリストビューを追加して再度移行後実行したところ 同じようにエラーが発生しました。 移行後に AxInterop.ComctlLib.dll Interop.ComctlLib.dll といったのができているのでコモンコントロールはこのdllを使用して動くように なっていると思うのですが、 これだけではだめなのでしょうか? | ||||||||
|
投稿日時: 2004-05-22 22:16
逆です。 それらの .dll は、VB6 付属のコモンコントロールを VB.NET で扱うために存在するものです。 コモンコントロールがそれらの .dll に依存して動作するわけではありません。
駄目です。 元の VB6 が VB6 固有のコントロールを使っているなら、VB.NET に移行したアプリケーションもそのコントロールがインストールされていない環境では動作しません。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||
|
投稿日時: 2004-05-24 10:04
ありがとうございます。
思いっきり逆に勘違いしていました。 VB6のコモンコントロールはこれらのdllを通して.net Frameworkを 使用するのだと思っていました。 ただ疑問が残るのが、うまく実行できないマシンは、 VS6がインストールされていて、VB6の状態のアプリは実行できています。 コモンコントロールは問題なくインストールされているはずなんですが。 |
1