Visual Studio からのアプリ アタッチ
この記事では、Visual Studio 2022 を使用してアプリアタッチ準備パッケージを作成し、Azure Virtual Desktop に発行する方法について説明します。
アプリ アタッチとは?
MSIX アプリ アタッチは、物理マシンと仮想マシンの両方に MSIX アプリケーションを配信する方法です。 ただし、MSIX アプリ アタッチが通常の MSIX と異なるのは、これが特に Azure Virtual Desktop などのサポート対象製品用に作られているためです。
アプリ アタッチを選ぶ理由とは?
企業は、次の場合にアプリ アタッチを選びます。
- より簡単なWindows イメージの管理
- メンテナンス コストの削減やセキュリティの向上など、アプリの管理性の向上
ストリーミング されたアプリのデータは、ユーザーと共にローミングされます。 これにより、アプリを即座に実行し、どこにいてもその環境を継続できます。
ローカル アプリ アタッチを使用すると、デバイスにインストールせずに MSIX アプリケーションを実行できます。 ローカル アプリ アタッチを強化する API は、Windows 11 Enterprise と Windows 10 Enterprise で完全にサポートされており、アプリケーションをマウントおよびマウント解除するために OS に組み込まれています。 PowerShell コマンドレットまたはスクリプトを使用して、プロセスを自動化することもできます。
あらかじめ必要な手順
- Visual Studio 2022 をダウンロードし、インストールする。
- C# 用 Visual Studio をセットアップする。
- Visual Studio で「Azure開発」ワークロードを次のように構成します。
- Visual Studio インストーラーを開く
- [変更] をクリックします。
- Azure 開発が選択されていることを確認する
- 下部にある [変更] をクリックして更新を開始します。
機能する Azure Virtual Desktop のデプロイ。 Azure Virtual Desktop (クラシック) のデプロイ方法については、「Azure Virtual Desktop でテナントを作成する」を参照してください。 Azure Resource Manager の統合を使用して Azure Virtual Desktop をデプロイする方法については、「Azure portal を使用してホスト プールを作成する」を参照してください。
ここに移動するか、「アプリ アタッチ ツールキット」を検索して、Visual Studio Marketplace から拡張機能を取得します。
上記のダウンロード ファイルをダブルクリックして、拡張機能を Visual Studio にインストールします。
- このシステムがインターネットに接続されていることを確認します。
Note
この拡張機能は Visual Studio 2022 のみと互換性があります。
拡張機能を使用する
Visual Studio 2022 拡張機能をインストールしたら、以下を実行します。
- 右クリックして [管理者として実行] を選択して、権限昇格モードで Visual Studio を起動します。
- Windows アプリ SDKに付属する空のアプリパッケージ (デスクトップの WinUI 3) Visual Studio プロジェクト テンプレートを使用して、WinUI 3 C# または C++ デスクトップ アプリを作成します。
Note
MSIX イメージの作成プロセスは、この時点で WinUI3 アプリでのみサポートされています。
- ソリューション エクスプローラーで、プロジェクトを右クリックしてパッケージと発行 ->アプリ アタッチ パッケージの作成を選択します
- さて、MSIX パッケージと VHDx ファイルの出力場所を選択し、最適なプラットフォームを選択することで、パッケージを構成できるようになりました。
- エンド ユーザーのコンピューターにインストールされる MSIX パッケージの場合、そのコンピューター上で信頼されている証明書で署名されている必要があります。 ローカルの証明書ストアから証明書を選択するか、証明書ファイルを選択するか、新しい証明書を作成できます。 アプリ パッケージに署名する方法については、こちらをご覧ください。
拡張機能
この拡張機能を使用すると、開発者は、アプリ アタッチ準備パッケージの作成、ローカルでのアプリ アタッチのテスト、または Visual Studio から直接 AVD ホスト プールへの発行を行うことができます。
適切なオプションを選択して実施する必要があります。
ディスク イメージのみを作成する
これにより、アプリのアタッチ準備完了ディスク イメージが作成されますが、これはどこにも発行されません。 これは、手動で他の場所に転送または発行するために使用できます。 指定した出力フォルダー パスに移動して、イメージにアクセスできます。
ローカルのアプリ アタッチ
これにより、アプリアタッチ準備パッケージが作成され、テストとトラブルシューティングのためにローカルに発行されます。
このようにして、テストのために AVD ホストにアタッチする手間を省きます。 ユーザーはアプリをインストールし、テスト後にディスクを取り出すことができます。
Azure (AVD) アプリ アタッチ
これにより、アプリアタッチ準備パッケージが作成され、AVD ホスト プールに発行されます。
- アプリアタッチ パッケージを Azure Virtual Desktop に発行するには、Azure オプションを選択します。
Note
この拡張機能では、既存の Azure リソースへの発行のみが許可されます。
- 次の値を選択します。
- サブスクリプション ID - 展開に使用する Azure サブスクリプションを選択します。
- リソース グループ - ドロップダウンを用いて、既存のリソース グループ名を選択します。
- ストレージ アカウント – 展開されたファイルの共有を持つストレージ アカウント名を選択します。
- ファイルの共有 – パッケージが格納される Azure Virtual Desktop 展開内のファイル共有を選択します。
- アプリケーション グループ – アプリを発行するアプリケーション グループを選択します。
- ワークスペース – アプリケーション グループを割り当てるワークスペースの名前を選択します。
- ホスト プール – アプリケーション グループのホスト プール名を選択します。
- [発行] をクリックして、上記の Azure Virtual Desktop 展開にパッケージを発行します。
よく寄せられる質問 (FAQ)
Q1: ローカルのアプリ アタッチでステージングが失敗し、エラーが表示されたのはなぜですか?
A1: ステージングエラーの主な理由は、マシン上の MSIX に必要な依存関係が存在しないことです。 これに対処するには、続行するために必要な特定の依存関係に関する詳細情報を提供するアプリアタッチ ログを慎重に調べます。
Q2: Azure Virtual Desktop: アプリ アタッチ検証に成功したが、アプリが起動しない
A2: ここでの主な問題は、Azure Virtual Machine に MSIX 依存関係が存在しないことです。 これを解決するには、アプリ アタッチ ログから必要な依存関係を特定し、それらが指定された VM にインストールされていることを確認します。
Q3: エラー: <ファイル共有の場所>に仮想ディスクが見つかりませんか?
A3: このエラーは、通常、ファイル共有がすべての VM から切断されたときに発生します。 これを修正するには、割り当てられた VM にログインし、関連するファイル共有が VM に接続されていることを確認します。 その後、VHDx ファイルを正常にマウントおよびマウント解除できるようになります。
Q4: 複数のアカウントを使用して Visual Studio にログインしましたが、AVD アプリアタッチ用に取得すべきものはどれですか?
A4: AVD アプリアタッチの場合は、AVD 管理者ユーザーのみが Visual Studio にログインしていることを確認します。 拡張機能メニューを起動する前に、他のアカウントを削除します。 さらに、資格証明の有効期限が切れている場合は、Visual Studio に再サインインします。
Q5: 拡張機能はソリューションを変更しますか?
A5: はい。拡張機能は、ソリューションのルート レベルで AppAttachPackages フォルダーと appattach.config
ファイルを作成します。 AppAttachPackages フォルダーには MSIX と VHDx のアーティファクトが含まれていますが、 appattach.config
ファイルにはアプリアタッチ プロセスに不可欠なアプリケーション メタデータが保持されます。 これらの品目は無視しても問題ありません。
Q6: 拡張機能を使用してアプリケーション アーティファクトを AVD に再発行することはできますか?
A6: いいえ、この機能は現在サポートされていません。 ただし、バージョンを増やして再発行を試みることもできます。 これにより、リモート デスクトップ アプリケーションに 2 つの異なるアプリが作成されることに注意してください。 さらに、Azure portal を使用して、ホスト プール -> MSIX パッケージ セクションで以前のバージョンを非アクティブとしてマークできます。
Q7: ローカルにアタッチされたアプリケーションをアンインストールするにはどうしたらいいですか?
A7: 検索バーでアプリを右クリックし、[アンインストール] を選択します。 また、この PC に追加された新しいドライブを取り出します。 包括的な削除を行う場合は、管理者モードで PowerShell を起動し、次のコマンドを実行します。
$msixPackageFullName = <msixPackageFullName>
Remove-AppxPackage $msixPackageFullName -PreserveRoamableApplicationData
Q8: 実行中にプロセスがタイムアウトしています。
A8: appattach.config
で、<ProcessTimeOut> タグを探し出し、タイムアウト値を増やします。 既定値は 600 秒 (10 分) であり、要件に基づいて調整できます。