Windows 上の .NET の ClickOnce 配置プロパティにアクセスする
.NET 7 および Visual Studio 2022 バージョン 17.4 以降では、環境変数を使用して ClickOnce 配置プロパティにアクセスできます。
アプリケーション起動ツールは、ClickOnce アプリケーション配置プロパティを起動するアプリケーションと共有します (.NET のみ)。 プロパティは、環境変数を使用してアプリケーションと共有されます。
変数名は、.NET Framework ApplicationDeployment クラスのプロパティと密接に一致します。 新しい変数名には、ClickOnce_
プレフィックスが含まれます。
- ClickOnce_IsNetworkDeployed
- ClickOnce_ActivationUri
- ClickOnce_CurrentVersion
- ClickOnce_DataDirectory
- ClickOnce_IsFirstRun
- ClickOnce_TimeOfLastUpdateCheck
- ClickOnce_UpdatedApplicationFullName
- ClickOnce_UpdatedVersion
- ClickOnce_UpdateLocation
これらの変更に加えて、アプリケーション起動ツールのバージョンを返す新しいプロパティを使用できます。
ClickOnce_LauncherVersion
.NET アプリケーションでは、これらのプロパティを直接または間接的に使用できます。
Note
このメソッドを使用すると、アプリケーション展開プロパティにアクセスできますが、.NET 7 では ApplicationDeployment メソッドと同等のメソッドはサポートされていません。
Access プロパティ
次のコード例は、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 に設定する必要があります。