.NET 7 および Visual Studio 2022 バージョン 17.4 以降では、環境変数を使用して ClickOnce 配置プロパティにアクセスできます。
アプリケーション起動ツールは、ClickOnce アプリケーション配置プロパティを起動中のアプリケーションと共有します (.NETのみ)。 プロパティは、環境変数を使用してアプリケーションと共有されます。
変数名は、.NET Framework <xref:System.Deployment.Application.ApplicationDeployment> クラスのプロパティと密接に一致します。 新しい変数名には、 ClickOnce_ プレフィックスが含まれています。
- ClickOnce_IsNetworkDeployed
- ClickOnce_ActivationUri
- ClickOnce_CurrentVersion
- ClickOnce_DataDirectory
- ClickOnce_IsFirstRun
- ClickOnce_TimeOfLastUpdateCheck
- ClickOnce_UpdatedApplicationFullName
- ClickOnce_UpdatedVersion
- ClickOnce_UpdateLocation
これらの変更に加えて、アプリケーション起動ツールのバージョンを返す新しいプロパティを使用できます。
ClickOnce_LauncherVersion
.NET アプリケーションでは、これらのプロパティを直接または間接的に使用できます。
注
このメソッドを使用すると、アプリケーションの展開プロパティにアクセスできますが、.NET 7 では ApplicationDeployment メソッドと同等のメソッドはサポートされません。
アクセス権プロパティ
次のコード例は、 ClickOnce_IsNetworkDeployed と ClickOnce_ActivationUriの 2 つのプロパティに直接アクセスする方法を示しています。
NameValueCollection nameValueTable = new NameValueCollection();
if (Environment.GetEnvironmentVariable("ClickOnce_IsNetworkDeployed")?.ToLower() == "true")
{
string value = Environment.GetEnvironmentVariable("ClickOnce_ActivationUri");
Uri activationUri = string.IsNullOrEmpty(value) ? null : new Uri(value);
if (activationUri != null)
{
nameValueTable = HttpUtility.ParseQueryString(activationUri.Query);
Console.WriteLine("Query string: " + activationUri.Query);
Console.ReadKey();
}
}
これらのプロパティを間接的に使用するには、アプリケーション レベルで新しい ApplicationDeployment クラスを実装する必要があります。 このクラスは、環境変数の読み取りを抽象化し、古い .NET Framework クラスと同様のエクスペリエンスを提供します。
このクラスの実装例については、 ApplicationDeployment.csを参照してください。
次のコード スニペットは、このクラスの使用方法を示しています。
NameValueCollection nameValueTable = new NameValueCollection();
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
if (ad.ActivationUri != null)
{
nameValueTable = HttpUtility.ParseQueryString(ad.ActivationUri.Query);
}
}
ActivationUri と URL パラメーター
.NET 7 以降では、dotnet-mage は新しいスイッチ、-TrustURLParameters、または-tuをサポートします。 このスイッチを使用すると、dotnet-mage ツールを使用して、必要なデプロイ属性を設定できます。 この変更は、この機能をサポートしていなかった古い Mage ツールに対する改善であり、 trustURLParameters 属性 <deployment install="true" trustURLParameters="true">を追加するために、アプリケーション マニフェストを手動で変更する必要がありました。
アプリケーションがActivationUriおよび URL パラメーターにアクセスできるようにするには、trustURLParametersを true に設定する必要があります。