ソフラボの技術ブログ

仕事で使ったプログラミング、サーバー周りで役に立つこと、Webサービス開発に必要な技術情報、モバイル情報を書いてます。わかりやすく見やすくをモットーにしています。

VB6からVS2013にアップグレードする方法

f:id:shinsuke789:20141128121500j:plain

業務システムでは、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以上が必要

VisualStuido2012までのOS対応表
VisualStuido2013システム要件

必要な環境

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でビルドを行いコンパイルエラー等を解消していきます。

代表的なコンパイルエラー


LeftBはVB6の関数で、.NETでは削除されているので自作する必要があります。

Microsoftにて修正方法が書かれているものもあります。
しかし、説明がよくわからないのであまり参考にならないかもしれません。

別の記事でマイグレーションで注意すべきことをまとめています。

おまけ

VCの場合はVBほどエラーが出たりアップグレードできなかったりはないです。
ヘッダー、リンク等の修正をやればエラーは解決するような感じです。

感想

マイグレーションは変換は簡単だけど、修正が大変なのでやりたくない仕事です。。。


VisualBasic2013パーフェクトマスター (Perfect Master SERIES)

VisualBasic2013パーフェクトマスター (Perfect Master SERIES)