ITエンジニア向け 情報館  
   

 

Visual Studio

「文字リテラルに文字が多すぎます」のビルドエラー

ソースコードをビルドしたときに、「文字リテラルに文字が多すぎます」というエラーメッセージが出た場合の対処法です。

文字型変数に、あきらかに誤った文字情報を入れているのでなければ、該当ソースコードの文字コードがSJISになってしまっていることがエラーの原因です。

メニューバーの、
  ファイル > 保存オプションの詳細設定
のメニューで、ソースコードの文字コードをUTF-8にして保存し直し、再度ビルドすれば、エラーメッセージは解消されます。

SQLServerに対してデータベース比較ツールが使えない場合の対処法

VisualStudioには、データベース比較ツールが付属しています。
このツールを使うと、2つのデータベースの定義を比較して、テーブル定義・列定義が一致しているかどうかを調べることができます。

SQLServerのデータベースに対して比較をしようとした時、エラーが出て比較をすることができませんでした。
調べたところ、VisualStudioをアップデートすれば解消されました。
VisualStudioよりSQLServerのバージョンの方が高い場合に、このような症状が発生することがあります。

スタックトレースに行番号が表示されない場合の対処法

例外発生時に、スタックトレースに行番号が書かれていると、ソースコード中のどの箇所でエラーが発生したのかを迅速に把握でき、プログラムの改修をピンポイントで行えるようになります。
スタックトレースに行番号が表示されない場合は、次の原因が考えられます。

拡張子pdbファイルがない

実行環境に、pdbファイルを配置し忘れたなどの理由が考えられます。
pdbファイルを実行環境に配置すれば、行番号が表示されるはずです。

pdbファイルの対応付けが誤っている

pdbファイルはあるが、異なるビルドタイミングで生成した拡張子dllやexeのファイルと併存していることが考えられます。例えば、dllファイルは更新したが、pdbファイルを更新せず古いままだった、などが考えられます。
同じビルドタイミングで生成されたdllファイルとpdbファイルを、実行環境に配置すれば、行番号が表示されるはずです。

VisualStudioの設定

VisualStudioでのビルドの設定により、pdbファイルが生成されない設定になっていることが考えられます。
VisualStudioのプロジェクトのプロパティを開き、
設定項目:ビルド>詳細設定(D)>デバッグ情報
設定値:fullまたはpdb-only
と設定すれば、pdbファイルが生成されるようになります。

補足

本番稼働環境にはpdbファイルを置くな、という意見も多くあります。
ただ、本番環境で万が一不具合が発生した時に、的確に最速でバグを回収して本番環境を再更新が必要とされる要件がある場合には、pdbファイルを置いておくのも一考に値します。

単体テストが実行できない(全てスキップされる)

Visual Studioの単体テスト(MSTest)を利用したら、全てのテストがスキップされる現象が発生しました。
Visual Studioをバージョンアップさせた後に、この症状が出ました。
MSTestで単体テストを行ったときに、次のようなエラーメッセージも表示されました。
(「出力」ウインドウで、ドロップダウンを「テスト」に切り替えたところに表示されていました)

同じ拡張子で複数のバージョンが見つかりました。最新のバージョンを選択しています。
Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter : 14.0.4908.2
TestSettings will soon be deprecated for automated unit and functional testing scenarios. It is recommended that you use RunSettings. To learn more, see http://aka.ms/runsettings

アセンブリ 'Microsoft.VisualStudio.QualityTools.LoadTest, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' が見つかりません。

警告: testsettings ファイル、vsmdi ファイルは MSTest V2 アダプターではサポートされていません。

この事象は、次のことを行うと解消されました。

  • ソリューション内の「〜.testsettings」という拡張子のファイルを削除した。これは、VisualStudio2010時代に使われていたものらしい?
  • ソリューションフォルダ内にある「.vs」フォルダに存在する、テスト関連の設定情報を削除した

 

 



Copyright 2004-2020 kiyochan. All right reserved
本サイト内で使用している文章や画像などの無断転載を禁止します


kiyochan.jp トップページに戻る