Přístup k vlastnostem nasazení ClickOnce pro .NET ve Windows

Od verze .NET 7 a Visual Studio 2022 verze 17.4 máte přístup k vlastnostem nasazení ClickOnce pomocí proměnné prostředí.

Spouštěč aplikací sdílí vlastnosti nasazení aplikace ClickOnce se spuštěnou aplikací (pouze .NET). Vlastnosti jsou sdíleny s aplikací pomocí proměnných prostředí.

Názvy proměnných úzce odpovídají vlastnostem ve třídě rozhraní .NET Framework ApplicationDeployment . Nové názvy proměnných zahrnují předponu ClickOnce_ :

Kromě těchto změn je k dispozici nová vlastnost, která vrací verzi spouštěče aplikací:

  • ClickOnce_LauncherVersion

Aplikace .NET může tyto vlastnosti používat přímo nebo nepřímo.

Poznámka:

Pomocí této metody můžete přistupovat k vlastnostem nasazení aplikace, ale rozhraní .NET 7 nepodporuje ekvivalent metod ApplicationDeployment.

Vlastnosti přístupu

Následující příklad kódu ukazuje, jak přistupovat ke dvěma vlastnostem přímo ClickOnce_IsNetworkDeployed a ClickOnce_ActivationUri.

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();
    }
}

Nepřímé použití těchto vlastností vyžaduje implementaci nové ApplicationDeployment třídy na úrovni aplikace. Tato třída abstrahuje čtení proměnných prostředí a poskytuje podobné prostředí jako stará třída rozhraní .NET Framework.

Ukázkovou implementaci této třídy najdete v tématu ApplicationDeployment.cs.

Následující fragment kódu ukazuje, jak používat tuto třídu:

NameValueCollection nameValueTable = new NameValueCollection();
if (ApplicationDeployment.IsNetworkDeployed)
{
    ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
    if (ad.ActivationUri != null)
    {
        nameValueTable = HttpUtility.ParseQueryString(ad.ActivationUri.Query);
    }
}

Aktivační identifikátoryURI a parametry adresy URL

Počínaje rozhraním .NET 7 podporuje dotnet-mage nový přepínač nebo -TrustURLParameters-tu. Tento přepínač umožňuje nastavit požadovaný atribut nasazení pomocí nástroje dotnet-mage. Tato změna je vylepšením starého nástroje Mage, který tuto funkci nepodporuje a také vyžadoval ruční úpravu manifestu aplikace pro přidání atributu trustURLParameters<deployment install="true" trustURLParameters="true"true">.

Pokud chcete aplikaci povolit přístup k ActivationUri parametrům a parametrům adresy URL, musíte nastavit trustURLParameters hodnotu true.

ClickOnce pro .NET ve Windows