業務システムでは、VB6で作られたシステムがまだまだ現役で動いています。
VB6のままで良いとしても、OSがバージョンアップしていくので開発環境もバージョンアップしていく必要があります。
そうなるとどうしてもソースもバージョンアップしないといけません。
仕事でVB6からVS2013にアップグレードする案件があったのでその時にどのように作業を行ったかをまとめました。
プロジェクトの読み込み順序
Microsoftによると、VS2010からファイル形式が変わっているようで、VS2008でアップグレードしてからVS2013で行うようにとありました。
手順は「VB6→VS2008→VS2013」となります。
次のようにバージョン毎にファイル形式が異なっているようです。(推測)
~VB6
VS2002~2003
VS2005~2008
VS2010~2013
一度アップグレードされると古いバージョンでプロジェクトを読み込むことはできなくなります。
念のためアップグレード前にバックアップをとりましょう。
システム要件
OSとVisualStudioのシステム要件の関係性は次の通りです。
XPSP2 | XPSP3 | 7 | 7SP1 | 8 | |
---|---|---|---|---|---|
VB6 | ○ | ○ | × | × | × |
VS2008 | ○ | ○ | ▲ | ▲ | × |
VS2013 | × | × | × | ○ | ○ |
▲:VS2008SP1以上が必要
必要な環境
VB6、VS2008環境
VB6が必要なのでXPが動作するパソコンまたは仮想環境が必要です。
Windowsで仮想環境を構築する場合、「VMWare Player」が無料で使えます。
OS | Windows XP SP2以上 |
---|---|
VB | VisualBasic 6.0 SP6 |
VS | VisualStudio 2008 |
VS2008は、VB6をインストールしてからインストールして下さい。
VS2008のエディション指定はなくExpressでも可能です。
プロジェクトを変換するだけなので最小限のインストールでOKです。
VS2008 Expressは次のサイト等で入手できます。
NonSoft - Visual Studio 2008 Expressのダウンロードとインストール
VS2013環境
OS | Windows 7 SP1以上 |
---|---|
VS | VisualStudio 2013 |
アップグレード手順
VS2008を起動し、VB6のプロジェクトでのある「*.vbp」ファイルを読み込ませます。
VB6以外のライブラリやランタイムが見つからないエラーが出てきたら、個別でインストールして再度プロジェクトを読み込ませます。
問題なければVS2008にプロジェクトが読み込まれます。
この時点でビルドはしてもしなくてもよいです。
アップグレードにエラーが発生しなければ成功です。
VS2008のアップグレードレポートは、変換されたプロジェクトフォルダ内の「_UpgradeReport.htm」にあたります。
VS2008でアップグレードに成功したら次はVS2013で「*.sln」または「*.vbproj」ファイルを読み込ませます。
VS2008でアップグレードが成功しているので、エラーが出てアップグレードができないというのはたぶんないでしょう。
VS2013でアップグレードに成功すると、ブラウザが起動してアップグレード結果が表示されます。
エラー数が0であれば成功で、警告、メッセージがあった場合でも成功しています。
VS2013アップグレードレポートは、変換されたプロジェクトフォルダ内の「UpgradeLog.htm」にあたります。
また、Backupフォルダにも変換前のファイルとコンパイルエラーレポートがあります。
その後、VS2013でビルドを行いコンパイルエラー等を解消していきます。
代表的なコンパイルエラー
- 'As Any' は、'Declare' ステートメントではサポートされていません。
- ステートメントの終わりを指定してください。
- 式は値を生成しません。
- 'xxx' は 'System.Windows.Forms.Form' のメンバーではありません。
- 'xxx' は宣言されていません。アクセスできない保護レベルになっています。
- 'LeftB' は宣言されていません。アクセスできない保護レベルになっています。
LeftBはVB6の関数で、.NETでは削除されているので自作する必要があります。
Microsoftにて修正方法が書かれているものもあります。
しかし、説明がよくわからないのであまり参考にならないかもしれません。
別の記事でマイグレーションで注意すべきことをまとめています。
おまけ
VCの場合はVBほどエラーが出たりアップグレードできなかったりはないです。
ヘッダー、リンク等の修正をやればエラーは解決するような感じです。
感想
マイグレーションは変換は簡単だけど、修正が大変なのでやりたくない仕事です。。。
VisualBasic2013パーフェクトマスター (Perfect Master SERIES)
- 作者: 金城俊哉
- 出版社/メーカー: 秀和システム
- 発売日: 2013/12/05
- メディア: 単行本
- この商品を含むブログを見る