VisualStadio 2008 から 2015への移行でビルドエラー

Pocket

現在、サーバ更新に伴い、プログラムを「VisualStadio 2008 VB.NET」から「Visual Stadio 2015 VB.NET」 に移行し、動作させると仕事を請け負っているのですが、移行時のリビルドで大量にビルドエラーが発生してちょっとハマってしまいました。

原因不明のエラー群

大量発生のビルドエラー

初めは楽勝♪楽勝♪と余裕をカマしていましたが、いざビルドを行うと出るわ、出るわのビルドエラー。しかもエラー内容が意味不明。

VS2008ではビルドエラーにはなりませんのでコードが間違っているという事はありません。こうなると考えられる可能性を潰していくしかありません。

手始めのMicrosoftさん

まずはMicrosoftのサイトでエラー内容を調べてみます。

コンマ、’)’、または有効な式の継続文字が必要です
プロシージャ定義内やプロシージャ呼び出し内の引数リストなどのリストで、メンバーが適切に分離されていないか、終了していません。 考えられる原因の 1 つとして、リストの 2 つのメンバーが 1 つ以上の空白でのみ区切られていることがあります。

エラー ID: BC32017
このエラーを解決するには

  • コンマ (,) を使用してリストのメンバーを区切り、終わりかっこ ()) を使用してリストを終了します。

はい分かりません。大抵、Microsoftのサイトを調べても1度で解決した試しはありません。

困った時のGoogle先生

検索の切り口を変えてGoogle先生に頼んでみます。検索ワードは
「vb.net 2008 2015 ビルド エラー」
おぉーっと、それらしき内容が出てきました。

原因判明

どうも「VisualStadio 2015」ではデフォルトのエンコードが【UTF-8】になっているようで、【シフトJIS】で保存されているソースはエラーとなるようです。 エンコードの確認はエラーとなるファイルをVSで開いて、メニューのファイル->保存オプションの詳細設定から確認できます。 見事に【日本語(シフトJIS)〜932】でした。
試しにエンコードを【Unicode(UTF-8 シグネチャ付き)〜65001】にして上書き保存してからビルドするとエラーが消えました。

対処方法

対処方法としては何通りかあります。

ファイルを【Unicode(65001)】で上書き保存

この方法では、全てのファイルを上書き保存し直さないといけないのでファイル数が多い場合は現実的ではありません。

プロジェクトファイルをShift JIS (932) に対応

Microsoftのサイトに対応方法が記載されています。

本記事でご案内しているコンパイラエラーは、Visual Studio 2015 RTM の不具合に起因した問題であり、Visual Studio 2015 Update 1で修正されています。 そのため、本記事に記載の方法のほかに、Update 1、または、それ以降の更新プログラムを適用することでもこのコンパイラ エ...

以下、抜粋

  1. Visual Studio で対象のプロジェクトを開く
  2. [ソリューション エクスプローラー] 上で対象のプロジェクトを右クリックし、[プロジェクトのアンロード] を選択。
  3.  [ソリューションエクスプローラー] 上で対象のプロジェクトを右クリックし、[編集] を選択
  4. プロジェクト ファイルの編集画面で、<PropertyGroup> 要素に、<CodePage> 要素を追加
  5. 編集を保存し、再度、[ソリューション エクスプローラー] 上で対象のプロジェクトを右クリックし、[プロジェクトの再読み込み] を選択。
  6. プロジェクトをリビルドし、コンパイラ エラーが解消することを確認。

ちなみに今後のプロジェクト開発も完全にShift-JISだけでいいのであれば 「%ProgramFiles%\MSBuild\14.0\Microsoft.Common.props」をメモ帳などで開き、上記4.と同じ<CodePage>要素を追加すればOKです。

一括変換

これも上記のMicrosoftのサイトに対応方法が記載されていますが、自分はまだ試していません。

まとめ

開発言語にせよ、データベースにせよ、バージョン更新の対応は何かしら異常が起きます。特に過去の資産をばっさり切り捨てられるのは勘弁してもらいたいところです。
無知といわれればそれまでですが、事前に調べてもわからないことって多々あります。
まぁ、どうやっても創造主様には逆らえないので受け入れるしかないんですけどね。。。

Pocket

スポンサーリンク

フォローする

スポンサーリンク