none
VB6からVS2008へのアップグレードが失敗する RRS feed

  • 質問

  • お世話になっております。

    VB6からVS2015へのアップグレードを検討しています。

    VB6から直接VS2015へは変換できないため、VB6⇒VS2008⇒VS2015と変換しようとしていますが、

    VB6で作成したプロジェクトをVB2008で開いてアップグレードウィザードで変換を行った場合に、解析が終わって変換も進むのですが最後の最後でアップグレードに失敗してしまいます。

    変換したファイルを出力しているフォルダを見ていると、途中まではフォームごとに3種類のファイル(vb、Designer.vb、resX)が作成されますが、途中からvbファイルしか作成されなくなります。(3種類のファイルが作成されている場合は、プロジェクトファイルにも何かしらの更新が発生しているのですが、vbファイルしか作成されなくなると、プロジェクトファイルも更新されなくなりました。)

    同じ実装方法の別のプロジェクトの場合は、アップグレードウィザードが正常に完了します。

    このような場合はどのようにすればアップグレードウィザードが正常に完了するかご存知のかたいらっしゃいますでしょうか。

    少し思い当たることとしては、変換時のエラーが大量にありすぎて、ログファイルが大きくなりすぎているのかな、と考えています。

    <変換が成功するプロジェクト>

    ・VB6のときのEXEファイルは、20MByteほど。

    ・変換成功時に作成されたログファイルは、19MByteほど。(※UpgradeReportは55MByte)

    <変換が失敗するプロジェクト>

    ・VB6のときのEXEファイルは、49MByteほど。



    2017年7月24日 1:51

すべての返信

  • こんにちは。

    アップグレード失敗時のエラーメッセージやログの情報などにはどういった内容が出力されているのでしょうか。
    そちらには対策の案内は何もないのでしょうか。

    2017年7月24日 2:47
    モデレータ
  • Tak1waさん、返信ありがとうございます。

    ログを確認しましたが、対策についてはとくに記載はありません。

    アップグレードウィザードのエラーメッセージは、以下の文言のみです。

    -------------------------------------------------------------------------------------------

    アップグレードに失敗しました:アプリケーションによって例外が発生しました。

    -------------------------------------------------------------------------------------------

     

    イベントログには以下のログがありました。

    -------------------------------------------------------------------------------------------

    障害が発生しているアプリケーション名: vbu.exe、バージョン: 9.0.30304.0、タイム スタンプ: 0x47cd0138
    障害が発生しているモジュール名: RSObjects.dll、バージョン: 9.0.30304.0、タイム スタンプ: 0x47ccfb82
    例外コード: 0xc0000005
    障害オフセット: 0x0003f042
    障害が発生しているプロセス ID: 0x5a4
    障害が発生しているアプリケーションの開始時刻: 0x01d3042900ac3497
    障害が発生しているアプリケーション パス: C:\Program Files\Microsoft Visual Studio 9.0\VB\VBUpgrade\vbu.exe
    障害が発生しているモジュール パス: C:\Program Files\Microsoft Visual Studio 9.0\VB\VBUpgrade\RSObjects.dll
    レポート ID: aa801838-702b-11e7-b843-d43d7e888733

    -------------------------------------------------------------------------------------------



    2017年7月24日 6:18
  • > アップグレードに失敗しました:アプリケーションによって例外が発生しました。

    これのみですか?
    アップグレードウィザードのエラー時ってもっと情報いろいろ出たような記憶があったのですが。
    情報がこれだけだとピンポイントで同じ現象にあった人しかわからないかもしれません。

    2017年7月24日 6:26
    モデレータ
  • Tak1waさん、返信ありがとうございます。

     

    >> アップグレードに失敗しました:アプリケーションによって例外が発生しました。

    これのみですか?

    はい、「アップグレードに失敗しました:アプリケーションによって例外が発生しました。」としか表示されません。

     

    >アップグレードウィザードのエラー時ってもっと情報いろいろ出たような記憶があったのですが。
    >情報がこれだけだとピンポイントで同じ現象にあった人しかわからないかもしれません。

    VB6で利用しているコンポーネントがインストールされていないと、その事がわかるようなメッセージは表示されます。ただ、今発生しているエラーは、上記内容のメッセージしか表示されず、エラーの原因がつかめいない状況です。

    似たような現象にあった方がいればと思い、質問させていただきました。

    2017年7月24日 7:02
  • 参考にならない可能性がありますが、下記情報をお伝えします。

    変換ができたプロジェクトが
    OCXなどのサードパーティが含まれていないノーマルのものか?
    そうでないか(含まれているか)?
    という違いがあれば、下記内容が参考となるかもしれません。

    ドイツの開発者にも、ふふふのふ様と似たようなエラーが発生した開発者がいらっしゃったようです。

    Aktualisierung eines VB6-Projekts in VS 2008 funkt. nicht

    [一部抜粋]
    > Mit wachsender Komplexität und je mehr Fremdkomponenten (OCX) enthalten sind,
    OCXなどのサードパーティが含まれているときに変換エラーが起きる可能性があるようです。

    > Sollte es "nur" an der Projektdatei scheitern, so könnte diese manuell durch
    どうやら新規プロジェクトを起こして手動でやったようです。

    ただし、ocxについてはマイクロソフトさんや他の開発者様では次の提案があるようです。

    [PRB] Visual Basic 6.0 のコントロールを Visual Studio .NET で使用するとエラーが発生する

    Visual Studio 2008 Express Edition VB6 プロジェクトファイル(.vbp)変換 (4/30)



    2017年7月24日 21:11
  • msuser_forum さん、返信ありがとうございます。

    また、ご連絡が遅くなり申し訳ありません。

    変換できたプロジェクトも、変換できないプロジェクトも、同じサードパーティのツールが含まれています。

    いろいろ試しているのですが、

    プロジェクト内で参照しているフォームの数を減らしてからアップグレードを実行すると、

    変換に成功することがわかりました。

    似たような現象を経験したかたがいるかと思い質問させていただいたのですが、

    平行してマイクロソフトさんのサポートへも問い合わせ中で、マイクロソフトさんからの回答でも似たような事例は

    無いとのことでした。

    現時点では、回避策としてはプロジェクトを分割するしかない状況です。

    調査継続中なので、調査完了後に、また状況を投稿させていただきます。

    2017年8月30日 23:23