redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

(小ネタ).NET CoreのWPFアプリケーションから、.NET Frameworkのコンソールアプリケーションを実行する方法

タイトルの内容をやりたい人はあまりいないと思いますが、必要になったので調べました。

以下が作業手順になります。

  1. .NET CoreのWPFアプリケーション、.NET Frameworkのコンソールアプリケーションプロジェクトをソリューション内にそれぞれ作成します。
  2. WPFアプリケーションプロジェクトを右クリックし、追加→プロジェクト参照と選択し、コンソールアプリケーションプロジェクトを追加します。
  3. WPFアプリケーションで、ProcessクラスのStartメソッドを引数に「コンソールアプリケーションをビルドして作成されたexeファイル名」を渡して、呼び出します。

プロジェクト参照を追加することで、ビルド時にコンソールアプリケーションをビルドしたファイルを、WPFアプリケーションの出力フォルダにまとめて配置してくれるので、exeファイル名を指定だけで実行できるのがとても楽です。

補足 コマンドラインでのビルドについて

Visual Studio上で実行する場合は良いのですが、CI/CDのためにコマンドラインでビルドしたい場合、dotnet buildコマンドを実行すると、.NET Framewrokプロジェクトのビルドで失敗してしまいます。
msbuildコマンドを実行すると、ビルドが成功したため、こちらを使用しました。

動作環境

以上