VS Code+.Netでアプリを作る(No.3):Windows.Formsを使ってアプリを作る

やっと、プログラミングができる。









プロジェクトを見てみると、プロジェクトルートに以下2ファイルがある。

  • Program.cs
  • msbox.csproj
参照コンポーネントは、msbox.csprojファイルに記述する必要がある。
●msbox.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
  <OutputType>Exe</OutputType>
  <TargetFramework>net472</TargetFramework>
</PropertyGroup>
<ItemGroup>
  <Reference Include="System.Windows.Forms">
</ItemGroup>
</Project>

●Program.cs
using System;
using System.Windows.Forms;
namespace msbox
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
           MessageBox.Show("!! Hello World !!");
        }
    }
}

ここで疑問がある。
System.Windows.FormsからMessageBoxが連想できるのか?
これはもう、.Net Core APIのドキュメントを読んでSystem.Windows.Formsにどんなクラスがあるのか覚えるしかなさそうだ。

デバッグ開始
デバッグ時には、以下2ファイルが必要。

  1. launch.json
  2. tasks.json

- launch.json
F5(デバッグ開始)を押下すると作成される。
"program": ....."<insert-target-framework-here>/<insert-project-name-here>.dll"の部分を以下の通り変更する。
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceFolder}/bin/Debug/net472/msgbox.exe",
            "args": [],
            "cwd": "${workspaceFolder}",
            "console": "internalConsole",
            "stopAtEntry": false
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ]
}

- tasks.json
改めてF5(デバッグ開始)すると、以下のポップアップが表示される。









ここで"Configure Task"を選択。






"Create tasks.json file from template"を選択。
tasks.jsonのテンプレートを作ってくれるらしい。


".NetCore Executes .Net Core build commands"を選択すればいい。
ここで、ふと気づく。outputがexeファイルなのにLinuxで動くのかと。
案の定、エラーだ。

/usr/share/dotnet/sdk/3.1.300/Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644: .NETFramework,Version=v4.7.2 の参照アセンブリが見つかりませんでした。この問題を解決するには、このフレームワーク バージョンの Developer Pack (SDK/Targeting Pack) をインストールするか、アプリケーションのターゲットを再設定してください。https://aka.ms/msbuild/developerpacks で .NET Framework Developer Pack をダウンロードできます。 [/home/keisuke/dotnet/msbox/msbox.csproj]

The terminal process terminated with exit code: 1

気を取り直して、コンソールアプリを作る。(※ここを参照)
$ dotnet new console -n TestConsole
$ cd TestConsole
$ dotnet run
Hello World!
今日は、これで幸せ。

参考:



コメント

このブログの人気の投稿

ソリューション構成ごとにconfigファイルを作成する

C++の古いプロジェクトのビルドでerror MIDL2311 : statements outside library block are illegal in mktyplib compatability mode

web.config debug/releaseの内容を変換構文を使って切り替える