single.php

C# コンソールアプリ(.NET Framework)で System.Windows.Forms アセンブリを追加する方法

Visual Studioで作成できるコンソールプロジェクトには2種類あります。デバッグ用にメッセージボックスを表示したい場合に[System.Windows.Forms]アセンブリを追加する方法が少し違っていたので備忘録的に投稿します。

コンソールアプリ

Visual Studioの[新しいプロジェクトの作成]画面には2種類のコンソールアプリが用意されています。

[コンソール アプリ](Windows、Linux、macOS上の.NETで実行できるコマンドラインアプリケーションを作成するためのプロジェクト)

[コンソール アプリ(.NET Framework)]コマンドラインアプリケーションを作成するためのプロジェクトです)

です。

言い換えると[コンソール アプリ]は.NET Coreで動作するアプリで、[コンソール アプリ(.NET Framework)]は文字通り.NET Frameworkで動作するアプリです。

簡単に言うと動作する環境が、[コンソール アプリ(.NET Framework)]はWindows専用のアプリで、[コンソール アプリ]は、LinuxやmacOSでも動作します。

非常に分かり辛いですね(笑)

[コンソール アプリ]で[System.Windows.Forms]アセンブリを追加する方法は、別記事で紹介していますので、興味のある方は別記事をご覧ください。

[参照マネージャー]画面で直接DLLを指定

プロジェクトの参照設定で[System.Windows.Forms]アセンブリを追加するためにDLLを読み込みます。

具体的には次の操作で行います。

1. [ソリューション エクスプローラー]画面で[プロジェクト]を選択後に右クリックで表示されたポップアップメニューで[追加|参照]を選択します。

2. 表示された[参照マネージャー]で[参照]をクリックします。

3.[参照するファイルの選択]画面で以下のファイルを選択して[追加]をクリックします。

C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\System.Windows.Forms.dll

4.[参照マネージャー]の一覧に追加された[System.Windows.Forms.dll]のチェックボックスを有効にして[OK]をクリックします。

5.[Program.cs]の編集画面で[System.Windows.Forms]アセンブリを追加します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

6. メッセージボックスが表示されるコードを追加します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DorNetConsoleApp
{
    internal class Program
    {
        static void Main(string[] args)
        {
            MessageBox.Show("Hello World!");
        }
    }
}

実行すると、コンソールアプリでメッセージボックスが表示されます。

まとめ

短い記事になりましたが、Visual Studioで、C# コンソールアプリ(.NET Framework)のプロジェクトに[System.Windows.Forms]アセンブリを追加する手順を紹介しました。

Visual Studioの[新しいプロジェクトの作成]画面でC#向けのコンソールアプリには2種類が用意されています。

それぞれのプロジェクトで[System.Windows.Forms]アセンブリを追加する手順が異なりました。

Visual Studioのコンソールアプリで[System.Windows.Forms]アセンブリを追加したい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です