(小ネタ).NET CoreのWPFアプリケーションから、.NET Frameworkのコンソールアプリケーションを実行する方法
タイトルの内容をやりたい人はあまりいないと思いますが、必要になったので調べました。
以下が作業手順になります。
- .NET CoreのWPFアプリケーション、.NET Frameworkのコンソールアプリケーションプロジェクトをソリューション内にそれぞれ作成します。
- WPFアプリケーションプロジェクトを右クリックし、追加→プロジェクト参照と選択し、コンソールアプリケーションプロジェクトを追加します。
- WPFアプリケーションで、ProcessクラスのStartメソッドを引数に「コンソールアプリケーションをビルドして作成されたexeファイル名」を渡して、呼び出します。
プロジェクト参照を追加することで、ビルド時にコンソールアプリケーションをビルドしたファイルを、WPFアプリケーションの出力フォルダにまとめて配置してくれるので、exeファイル名を指定だけで実行できるのがとても楽です。
補足 コマンドラインでのビルドについて
Visual Studio上で実行する場合は良いのですが、CI/CDのためにコマンドラインでビルドしたい場合、dotnet build
コマンドを実行すると、.NET Framewrokプロジェクトのビルドで失敗してしまいます。
msbuild
コマンドを実行すると、ビルドが成功したため、こちらを使用しました。
動作環境
- TFS 2018 Update 3
- .NET Core 3.1/.NET Framework 4.8
- ビルドマシン:Visual Studio 2019 Professional
以上