Windows で .NET の ClickOnce アクティブ化データにアクセスする
.NET 8.0 Preview 1 バージョンの dotnet-mage 以降、環境変数を使用して ActivationData
プロパティにアクセスできます。 このバージョンの dotnet-mage を使用すると、プログラムで次のことができます。
- カスタム ファイルの関連付けに基づいて、アクティブ化対象のファイル名を検出します。
- appref-ms ファイルでアクティブ化に使用される引数を検出します。
ランチャーは AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData
配列を読み取り、配列が空でない場合は該当する環境変数を設定します。
環境変数
次の環境変数が設定されます。
ClickOnce_ActivationData_Count
この変数が存在する場合、値は ActivationData 文字列配列内の要素の数です。
ClickOnce_ActivationData_<n>
配列内の各要素に対して、0 から始まるインデックスを持つ新しい環境変数が追加されます。つまり、次のようになります。
ClickOnce_ActivationData_0
ClickOnce_ActivationData_1
この変更によって修正されるシナリオでは常に 0 から始まるインデックス要素が使用されるため、変数は常に
ClickOnce_ActivationData_0
になりますが、コードは柔軟であり、すべてのアクティブ化データを .NET アプリに渡すことができます。
Access プロパティ
次のコードを使用して、これらの環境変数を読み取って ActivationData
コンテンツを検出できます。
string value = Environment.GetEnvironmentVariable("ClickOnce_ActivationData_0");
これまでは、.NET Framework アプリで、次のコードを使用してこのデータを読み取っていました。
string value = AppDomain.CurrentDomain?.SetupInformation?.ActivationArguments?.ActivationData?[0];