VS2008プロジェクトをVS2010にアップグレードした際の問題点

MySQL Connector/NET もバージョン 6.3.5 で やっと VisualStudio 2010 に対応したようですし、プロジェクトも本格的に WPF に移行することに決まったので、本日、VS2008 のソリューションをウィザードを使って VS2010 にアップグレードしました。ところが予想どおりというか、アップグレードしたら幾つか問題点が発生したので、備忘録的ではありますが公開いたします。

MySQL Connector/NET 製テーブルアダプターの問題

まず一つ目の問題が、MySQL Connector/NET 製のテーブルアダプターの Designer.vb がごっそり削られたこと。

テーブルアダブターはなくす方向で時間を見てはちくちく削ってはいたのですが、削り切れないままアップグレードしたら、見事にエラーが大発生。見ると、テーブルアダプターのクラスや Table・Column の継承オブジェクトが定義されてないとのエラー。ソリューションエクスプローラで調べたら、テーブルアダブターが自動生成した Designer.vb が一つ残らず綺麗に削られてました。><!

結局、バックアップしてた元のソリューションから Designer.vb をコピーして事なきを得たのですが、SQLServer で同様のことはさすがに起こらんだろうから、どうも MySQL /Connector.NET 絡みのバグ臭い(というか・・・アップグレードウィザードが認識できてない)ような気がします。


#2010/12/11 追記
上記問題ですが、再度確認したところ、ソリューションのアップグレードより先に MySQL Connector/NET を 6.3.5 にアップグレードしておけば正常に動作することがわかりました。


ActiveReports.Interop が参照設定から削られる

このプロジェクト、ClickOnce で配布してるのですが、ActiveReports を使っているため、ActiveReports.Interop.DLL をプロジェクトに加えて配布しなければいけません。

参考記事 ClickOnce(クリックワンス)による配布には対応していますか?


これ当然ながら 2008 のプロジェクトで設定してあったのが、アップグレードしたらいつの間にか参照設定から外れてました。ClickOnce で発行したら、インストールエラーになったので気が付きましたが、プロジェクト内で使われてないため、ウィザードが不要と判断したのか?なんとも恐ろしい話です。


#2010/12/11 追記
この問題も、上記と同じくソリューションのアップグレードより先に MySQL Connector/NET を 6.3.5 にアップグレードしておけば大丈夫みたいです(汗。
要は、MySQL Connector/NET 使うなら、先に 6.3 系にバージョンアップしとけよと(大汗)。


MySQL Connector/NET 6.3.5

以下の話は VS2010 へのアップグレードとは直接関係ありませんが、メモ書きです。
このバージョン、ネットで検索していると、インストールエラーという記事が幾つか目につきます。私の環境では VS2008 と VS2010 の二つがインストールされているわけですが、無事インストールでき、移行前と移行後の両方のプロジェクトで正常に動作することが確認できました。
ただし、どういうわけかインストールが非常に時間がかかる。私の環境(XP/SP3)では10分以上かかりました。途中フリーズしてるんじゃないかと思いましたが、ほっといて正解でした。インストールする人は注意が必要みたいです。


#2010/12/16追記 : MySQL Connector/NET 6.3.5 はインストーラーに不具合があるようです。詳細は以下のエントリーをご覧ください。
MySQL Connector/NET 6.3.5 でインストールエラー


#2011/01/04追記 : MySQL Connector/Net 6.3.6 がやっとリリースしました!