macOS dotnet 6.0 VSCodeでlaunch.json tasks.jsonを作る

macOS dotnet 6.0 VSCodeでlaunch.json tasks.jsonを作る

macOSdotnet 新規 console プロジェクトを作成する

dotnet new console

Program.cs と*.csproj が作成されるので、 VSCodeを起動する。

[F5]実行してみると、 下↓のようにdotnet 5も6も出ない

Visual Studio code C# F5実行
F5実行

.vscode フォルダもlaunch.json tasks.jsonも この状態では作られない

VSCode画面左のメニュー[実行とデバッグ]ボタンをクリック

メニューの[実行とデバッグ]を選択
メニューの[実行とデバッグ]を選択

[Generate C# Asset for Build and Debug]をクリック

.vscode フォルダが作られた
.vscode フォルダが作られた

.vscode フォルダが作成され、 launch.json tasks.jsonもできました。

[F5]dotnet 6.0で、 デバッグ実行できました。

macOS dotnet MAUI Apple Script実行

dotnet MAUI AppleScript

Visual Studio for Mac Preview 17.3MAUIプロジェクトで Apple Scriptを実行する方法です。

新しいプロジェクトで、 .NET MAUI アプリプロジェクトを 作成後

新規プロジェクト
新規プロジェクト

メイン画面に テキストボックスとボタン追加

作成したプロジェクト内に「MainPage.xaml」があるので下記のように編集する。

テキストボックスと、 ボタンを追加
テキストボックスと、 ボタンを追加

「MainPage.xaml」のコードは下記を追加する。

<HorizontalStackLayout HorizontalOptions="Center">
<Entry
	x:Name="TextField1"                
	Text="" HorizontalOptions="Center" WidthRequest="200"/>
<Button Text="Execute Script" Clicked=""></Button>
</HorizontalStackLayout>

MAUIの場合、 テキストボックスは<Entry />です。

ボタンイベントを作成

「MainPage.xaml」作成したButtonのClicked=””の空部分で、 コントロール+スペースで「New Event Handler」を選ぶ

MAUI Button Event
Button Event

「MainPage.xaml.cs」C#コード側にボタンイベントが作成されました。

各プラットフォームに対応するコードを記述していく

プロジェクト内 Platformsは、 Android, iOS, MacCatalyst, Tizen, Windows フォルダがあり、

それぞれに対応するコードが書ける。

この5つのプラットフォームに ダミークラスを用意する。

TUtils.csを各プラットフォームに作成する
TUtils.csを各プラットフォームに作成する
public class TUtils : IUtils
{
	public string ScriptExecute(string text)
	{
		return "";
	}
}

MacCatalystフォルダ内のTUtils.cs↓だけ中身を書く

using System;
using Foundation;
public class TUtils : IUtils
{
	public string ScriptExecute(string text)
	{
		try
		{
			NSDictionary d1;
			var scrpt = new NSAppleScript(text);
			var exe = scrpt.ExecuteAndReturnError(out d1);
			if (d1 == null)
			{
				string s = exe.StringValue;
				return s;
			}
		}
		catch (Exception _e)
		{
			Console.WriteLine(_e.Message);
		}
		return "";
	}
}

MainPage.xaml近くに共通するIUtilsインターフェイスを作成する。

public interface IUtils
{
	public string ScriptExecute(string text);
}

MainPage.xamlのボタンから作成した関数ScriptExecute()を呼び出す。

先程作成したイベント MainPage.xaml.csのButton_Clicked()の中を、 下記に編集する。

void Button_Clicked(System.Object sender, System.EventArgs e)
{
	var u1 = new TUtils();
	TextField1.Text = u1.ScriptExecute("set value to \"Execute AppleScript.\"");
}

上記コードのScriptExecute()引数の文字列に、 簡単な文字を返すだけのAppleScriptコードを入れました。

macOSで実行するので、 「MacCatalyst フォルダ」にあるTUtilsクラスが呼ばれます。

実行画面

下↓のようにボタンを押すとAppleScriptが実行されました。

アプリ実行
アプリ実行
2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED