aspnet_merge.exe がエラーになったときの対処法

少しはまってしまったのでメモ。 Visual Studio 2005 に Web Deployment Projects (WDP; 拡張子 wdproj) を導入し、大きめの Web サイトを発行しようとすると aspnet_merge.exe がエラーコード 1 を返すことがあります。 *1

たとえば、以下のようなエラーに遭遇します。

  • "aspnet_merge.exe" はコード 1 を伴って終了しました。
  • An error occurred when merging assemblies

一番多いエラー発生原因は、クラス名の重複です。特に _Default というクラス名が名前空間を使わずに複数含まれると発生します。解決するには、クラス名を変更してください。

上記原因以外の場合、検証は困難になります。 *2

それでも検証したいという場合、 Visual Studio のメニューから「ツール」-「オプション」-「プロジェクトおよびソリューション」-「ビルド/実行」-「MSBuild プロジェクト ビルドの出力の詳細」を「診断」などに変更してください。詳細なログが出力されるようになります。

*1:Visual Studio 2008 では、 aspnet_merge.exe のバージョンが上がっているため発生しないことが多いです。

*2:新しいバージョンの aspnet_merge.exe を使った方がいいかも……