C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: vbから.netへのアップグレード


(過去ログ 61 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■34859 / inTopicNo.1)  vbから.netへのアップグレード
  
□投稿者/ ぴぐみん。 (1回)-(2009/04/12(Sun) 21:38:02)

分類:[.NET 全般] 

vbで使っていたフォームを.netへアップグレードしたくても出来なくて困っています。

vbのプロジェクトを.netで立ち上げようとするとアップグレードウィザードが
立ち上がるのですが、途中で

「アップグレードエンジンを操作中に予期しない例外が発生しました。
ソースにバインド出来ません。」

というメッセージが出て、アップグレードできません。

普通に.netのプロジェクトを立ち上げて
ソリューションエクスプローラから新規作成でvbのフォームを追加しても、
フォームを開く事も出来ません。

モジュールなどはコピペで対応しようと思えば出来るんですが、
フォームはvbで使っていたものをアップグレードしたいのです。

vbではフォームに関連するファイルは form1.frm、form1.frxの2種類。
.netではform1.vb 、form1.designer.vb、form1.resxという3種類のファイルが作られるんですよね。

アップグレードウィザード以外の方法で.netへ必要なファイルを造る方法は無いのでしょうか?
引用返信 編集キー/
■34861 / inTopicNo.2)  Re[1]: vbから.netへのアップグレード
□投稿者/ オショウ (146回)-(2009/04/12(Sun) 23:22:54)
No34859 (ぴぐみん。 さん) に返信
> vbで使っていたフォームを.netへアップグレードしたくても出来なくて困っています。

  VB6から、.NETの2002/2003/2005/2008のどれにアップされたい
  のでしょうか?

  確か、2003までならVB6と.NET2003の両方が同一環境にインストール
  されていないと、アップグレードウィザードが動作しなかったよう
  に記憶しています。

※ 私の環境には、VB6と.NET2003/2005/2008がインストールされて
  いるので、VB6からのアップには何らの問題もなく動作してます。

  あと・・・
  VB6で他社製ActiveX等お使いの場合、それらが影響している場合
  もあります。

※ .NET側でVB6のフォームを追加できなかったように・・・

  環境とActiveX等、ご確認下さい。

以上。
引用返信 編集キー/
■34862 / inTopicNo.3)  Re[2]: vbから.netへのアップグレード
□投稿者/ ぴぐみん。 (2回)-(2009/04/13(Mon) 00:12:05)
No34861 (オショウ さん) に返信
> ■No34859 (ぴぐみん。 さん) に返信
>>vbで使っていたフォームを.netへアップグレードしたくても出来なくて困っています。
>
>   VB6から、.NETの2002/2003/2005/2008のどれにアップされたい
>   のでしょうか?
>

書き込みありがとうございます。

情報が足りなくてすいません。
アップデートしたいのは2005です。
引用返信 編集キー/
■34865 / inTopicNo.4)  Re[3]: vbから.netへのアップグレード
□投稿者/ biac (82回)-(2009/04/13(Mon) 09:12:22)
biac さんの Web サイト
このあたり↓の公式ドキュメントは読まれました?

http://download.microsoft.com/download/9/3/a/93addbb5-a556-421e-a67b-3e4e29803509/VB6to2005.pdf
> Upgrading Visual Basic 6.0 Applications to Visual Basic .NET and Visual Basic 2005
> patterns & practices

http://msdn.microsoft.com/ja-jp/library/dd314356(loband).aspx
> Visual Basic 6.0 ユーザーのための Visual Basic .NET 移行ガイド
> NEC Eラーニング事業部 山崎明子

プラットフォームを VB6 のランタイムから .NET Framework に変えるということですから、 それは、 ぶっちゃけ異なる OS へ移植するようなものです。
アップグレードウィザードで 100% 変換出来るのは、 VB6 のコードを、 VB.NET に変換可能なカタチにあらかじめ修正してある場合だけだと思ってください。

※ 実際には、 「アップグレードウィザードで変換する」 ではなくて、 「アップグレードウィザードが出したエラーを見て、 先に VB6 側で修正するか、 変換後に VB.NET 側で修正するか、 作り直すかの判断をする」 って感じです。
引用返信 編集キー/
■34866 / inTopicNo.5)  Re[4]: vbから.netへのアップグレード
□投稿者/ επιστημη (1877回)-(2009/04/13(Mon) 09:23:36)
επιστημη さんの Web サイト
↓こいつも地味ぃにタメになりまする。
http://www.atmarkit.co.jp/fdotnet/vblab/opensemi_02/opensemi_02_01.html

# なんか知ってるヒトタチばっかですがー (^^

引用返信 編集キー/
■34873 / inTopicNo.6)  Re[3]: vbから.netへのアップグレード
□投稿者/ オショウ (147回)-(2009/04/13(Mon) 12:02:52)
> アップデートしたいのは2005です。


  VB6のプログラムには、何か特殊(例外的)なものが
  書かれているとか・・・ActiveXの件とか、どうなので
  しょうか。

  変換はうまく行っても、ソースコードの中身としては、
  手を入れてやらないと動かない・・・と言うケースは、
  そこそこ遭遇していますが、変換時点で以上終了すると
  言う経験はないもので・・・

  あと、VB6のソースコード量はどの程度あるんでしょ
  うか?本数よりも1本のファイルの最大の大きさとか。

  推測ですが、フォームやモジュールであまりに巨大な
  サイズのファイルを変換させた場合、『落ちた』ように
  思いますので・・・

参考まで
引用返信 編集キー/
■34877 / inTopicNo.7)  Re[4]: vbから.netへのアップグレード
□投稿者/ biac (84回)-(2009/04/13(Mon) 12:17:54)
biac さんの Web サイト
ごめん。 最初の話を忘れてた。


> 「アップグレードエンジンを操作中に予期しない例外が発生しました。
> ソースにバインド出来ません。」

このエラーの件ですが、 メッセージの後ろのエラーコードのほうが役に立つかもしれません。
例えば、 0x8004000A(OLE_E_CANT_BINDTOSOURCE) だったとすれば、 こんなページ↓が見つかります。

http://social.microsoft.com/Forums/ja-JP/vbinterop/thread/546154c1-40bd-481a-937b-a7a9610a5df9
> Fixed: Unexpected exception occurred during upgrade engine operation: Not able to bind to the source
※ VS2005SP1 で直したよ

http://social.msdn.microsoft.com/Forums/ja-JP/vbinterop/thread/780e781e-072e-49ff-bf8a-fc3beb742ba8
> Unexpected exception occurred during upgrade engine operation
※ レジストリに追記したら直ったよ

http://social.msdn.microsoft.com/forums/ja-JP/vbgeneralja/thread/a38cc91c-1879-4ece-9fac-af838100ca95/
> VB2005アップグレードウィザード
※ レジストリを削除したら直ったよ

引用返信 編集キー/
■34900 / inTopicNo.8)  Re[5]: vbから.netへのアップグレード
□投稿者/ ぴぐみん。 (3回)-(2009/04/13(Mon) 21:30:48)
参考になるリンクなど、ありがとうございます。

しかし結局、原因は判明できませんでした。
モジュール関係はコピペで取り込んで、フォーム関連は全て作り直しました(涙)

でも、仮にアップグレードが成功しても、かなり余計なソースが入り込んでくるみたいですし、
作り直したほうが早いかな?と思ったので。

biacさんの言うように、vbと.netは異なる OS へ移植するようなものだという覚悟が必要ですね。。。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -