0
0

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

VB.NETプロジェクトをMSBuildでビルドしようとしたらエラーでできなかった件

Posted at

VS2022でVB.NETのアプリケーションを作り、Jenkinsのビルドジョブに乗せようと思ってMSBuildでビルドしようと思ったがエラーでできなくて困り果てていた。

結論

PCに複数のMSBuildがバージョン違いでインストールされており、作ったプロジェクトに対応するバージョンででのビルドが必要だった。

ここに至るまでの顛末

MSBuildはパスが通っていない状態だと、下記のような.NET Frameworkのディレクトリにあるため、コマンドラインで実行ファイルを指定していた。

C:\Windows\Microsoft.NET\Framework\v4.0.30319

まずはビルド確認のためslnファイルだけ指定して実行!

warning MSB4078: プロジェクト ファイル "hogehoge.vbproj" は MSBuild ではサポートされていないため、ビルドできません。

・・・。
ダメではないか。また、エラーを調査。すると、インストーラプロジェクトではMSBuildは使えないので、devenv.comを使えとのこと。

devenv.comってどこにあるんだろ?という疑問にはこの記事が参考になった。

私の場合(VS2022)は、下記にあったのを見つけた。

C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe

改めて、devenv.comでビルド。今度は成功!

できたとはいえ、やっぱりMSが推奨するのはMSBuildなので、こちらでビルドできるようにしたい。

そもそもインストール無しで動かしても良さそうなゴミアプリなので、このエラーを何とかしよう。

warning MSB4078: プロジェクト ファイル "hogehoge.vbproj" は MSBuild ではサポートされていないため、ビルドできません。

そこで、再びエラーの詳細を検索すると、MSBuildにもバージョンがあって、古いとNGみたいな文献を発見。
実際、PCには複数のVersionのMSBuildが存在することが分かった。そこで、最新のMSBuildを使ってビルドを試す。

"C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" "hogehoge.sln"

すると・・・。

ビルドに成功しました。
0 個の警告
0 エラー

できた!!単純にバージョンの違いだったか。

おまけ

複数のバージョンの依存関係に悩まされるときは、こういう回避方法もあるようだ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0