Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ab .NET 7 und Visual Studio 2022, Version 17.4, können Sie mithilfe einer Umgebungsvariable auf ClickOnce-Bereitstellungseigenschaften zugreifen.
Das Anwendungsstartfeld teilt ClickOnce-Anwendungsbereitstellungseigenschaften mit der gestarteten Anwendung (nur .NET). Eigenschaften werden mithilfe von Umgebungsvariablen für die Anwendung freigegeben.
Die Variablennamen stimmen eng mit den Eigenschaften in der .NET Framework-Klasse <xref:System.Deployment.Application.ApplicationDeployment> überein. Die neuen Variablennamen enthalten ein ClickOnce_ Präfix:
- ClickOnce_IsNetworkDeployed
- ClickOnce_ActivationUri
- ClickOnce_CurrentVersion
- ClickOnce_DataDirectory
- ClickOnce_IsFirstRun
- ClickOnce_TimeOfLastUpdateCheck
- ClickOnce_UpdatedApplicationFullName
- ClickOnce_UpdatedVersion
- ClickOnce_UpdateLocation
Zusätzlich zu diesen Änderungen ist eine neue Eigenschaft verfügbar, die die Anwendungsstartprogrammversion zurückgibt:
ClickOnce_LauncherVersion
Eine .NET Anwendung kann diese Eigenschaften direkt oder indirekt verwenden.
Note
Mit dieser Methode können Sie auf Anwendungsbereitstellungseigenschaften zugreifen, aber .NET 7 unterstützt nicht das Äquivalent von ApplicationDeployment-Methoden.
Zugriffseigenschaften
Das folgende Codebeispiel zeigt, wie Sie direkt auf zwei Eigenschaften, ClickOnce_IsNetworkDeployed und ClickOnce_ActivationUri, zugreifen.
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();
}
}
Die indirekte Verwendung dieser Eigenschaften erfordert die Implementierung einer neuen ApplicationDeployment Klasse auf Anwendungsebene. Diese Klasse abstrahiert das Lesen von Umgebungsvariablen und bietet eine ähnliche Erfahrung wie die alte .NET Framework-Klasse.
Eine Beispielimplementierung dieser Klasse finden Sie unter ApplicationDeployment.cs.
Der folgende Codeausschnitt veranschaulicht die Verwendung dieser Klasse:
NameValueCollection nameValueTable = new NameValueCollection();
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
if (ad.ActivationUri != null)
{
nameValueTable = HttpUtility.ParseQueryString(ad.ActivationUri.Query);
}
}
ActivationUri und URL-Parameter
Ab .NET 7 unterstützt dotnet-mage einen neuen Schalter -TrustURLParameters oder -tu. Mit diesem Switch können Sie das erforderliche Bereitstellungsattribut mithilfe des Dotnet-Mage-Tools festlegen. Diese Änderung stellt gegenüber dem alten Mage-Tool eine Verbesserung dar, das diese Funktionalität nicht unterstützte und außerdem eine manuelle Änderung des Anwendungsmanifests erforderte, um das Attribut trustURLParameters, <deployment install="true" trustURLParameters="true">, hinzuzufügen.
Sie müssen trustURLParameters auf true festlegen, damit die Anwendung auf die Parameter ActivationUri und die URL-Parameter zugreifen kann.