Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
À compter de .NET 7 et Visual Studio 2022 version 17.4, vous pouvez accéder aux propriétés de déploiement ClickOnce à l’aide d’une variable d’environnement.
Le lanceur d’applications partage les propriétés de déploiement d’applications ClickOnce avec l’application lancée (.NET uniquement). Les propriétés sont partagées avec l’application à l’aide de variables d’environnement.
Les noms de variables correspondent étroitement aux propriétés de la classe .NET Framework<xref:System.Deployment.Application.ApplicationDeployment>. Les nouveaux noms de variables incluent un ClickOnce_ préfixe :
- ClickOnce_IsNetworkDeployed
- ClickOnce_ActivationUri
- ClickOnce_CurrentVersion
- ClickOnce_DataDirectory
- ClickOnce_IsFirstRun
- ClickOnce_TimeOfLastUpdateCheck
- ClickOnce_UpdatedApplicationFullName
- ClickOnce_UpdatedVersion
- ClickOnce_UpdateLocation
Outre ces modifications, une nouvelle propriété est disponible qui retourne la version du lanceur d’applications :
ClickOnce_LauncherVersion
Une application .NET peut utiliser ces propriétés directement ou indirectement.
Note
Cette méthode vous permet d’accéder aux propriétés de déploiement d’application, mais .NET 7 ne prend pas en charge l’équivalent des méthodes ApplicationDeployment.
Propriétés d’accès
L’exemple de code suivant montre comment accéder directement à deux propriétés, ClickOnce_IsNetworkDeployed et 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();
}
}
L’utilisation indirecte de ces propriétés nécessite l’implémentation d’une nouvelle ApplicationDeployment classe au niveau de l’application. Cette classe extrait la lecture des variables d’environnement et fournit une expérience similaire à l’ancienne classe .NET Framework.
Pour obtenir un exemple d’implémentation de cette classe, consultez ApplicationDeployment.cs.
L’extrait de code suivant montre comment utiliser cette classe :
NameValueCollection nameValueTable = new NameValueCollection();
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
if (ad.ActivationUri != null)
{
nameValueTable = HttpUtility.ParseQueryString(ad.ActivationUri.Query);
}
}
Paramètres d’ActivationUri et d’URL
À partir de .NET 7, dotnet-mage prend en charge une nouvelle option, -TrustURLParameters ou -tu. Ce commutateur vous permet de définir l’attribut de déploiement requis à l’aide de l’outil dotnet-mage. Cette modification est une amélioration par rapport à l’ancien outil Mage, qui ne prenait pas en charge cette fonctionnalité et nécessitait également une modification manuelle du manifeste de l’application pour ajouter l’attribut trustURLParameters , <deployment install="true » trustURLParameters="true ».>.
Vous devez définir trustURLParameters sur true pour permettre à l’application d’accéder aux ActivationUri et aux paramètres d’URL.