かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

.NET のプロジェクトから WinRT API を呼ぶのが凄く簡単になってます

今迄も Windows Runtime API を .NET のプロジェクトから呼ぶことは出来ましたが手動で Windows.winmd ファイルなどを追加しないといけませんでした。

今回新たに Microsoft.Windows.SDK.Contracts というパッケージが追加されてます。まだプレビューですが。

www.nuget.org

以下のプラットフォームがサポートされています。

  • .NET Framework 4.5+
  • .NET Core 3.0+

とりあえず使ってみましょう。 .NET Framework のコンソールアプリを作ってさくっと追加します。

f:id:okazuki:20190509114453p:plain

注意点としては、多分 PackageReference じゃないとうまく動かない気がします。設定で変えておきましょう。

f:id:okazuki:20190509114716p:plain

追加したので、以下のコードを追加してみました!

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

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            Windows.System.Launcher.LaunchUriAsync(new Uri("https://example.com")).AsTask().Wait();
        }
    }
}

実行すると動いた!!やったね。

f:id:okazuki:20190509114925p:plain