今日はASP.NETアプリケーションをVisual Studio 2003から2005へ移行するための技術調査をやっていました。
ところどころでハマってしまったので、メモを残しておきます。
- 基本的には2003のslnファイルを2005で開き、ウイザードに従ってコンバートします。
- ただし、2005ではコンパイルが通らなかったり、デバッグ実行が出来なかったりします。(「Web サーバーでデバッグを開始できません」とか「Unable to start debugging on the Web server」とか)その場合はslnファイルをエディタで開き、以下のように変更します(httpで始まるURLではなくファイルパスを指定)。
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "http://localhost/WebAppMigrationTest/", "http://localhost/WebAppMigrationTest", "{947CC5DB-E9AC-4B72-B242-39BF9C41D70E}" ↓ Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "C:\Develop\WebAppMigrationTest\", ".", "{947CC5DB-E9AC-4B72-B242-39BF9C41D70E}"
- 2003では実行できていたコードが2005ではコンパイルが通らなかったりします。たとえばMath.Ceilingメソッドは引数がdecimalかdoubleかを厳密に判定するようになりました。
int a = 10; int b = 3; //double c = Math.Ceiling(a / b); //あいまいな型と言われコンパイルできない double temp = a / b; double c = Math.Ceiling(temp); //コンパイル可能