Accéder aux propriétés de déploiement ClickOnce pour .NET sur Windows
À partir 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’application 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 des variables sont étroitement associés aux propriétés dans la classe .NET Framework ApplicationDeployment. Les noms des nouvelles variables incluent un préfixe ClickOnce_
:
- ClickOnce_IsNetworkDeployed
- ClickOnce_ActivationUri
- ClickOnce_CurrentVersion
- ClickOnce_DataDirectory
- ClickOnce_IsFirstRun
- ClickOnce_TimeOfLastUpdateCheck
- ClickOnce_UpdatedApplicationFullName
- ClickOnce_UpdatedVersion
- ClickOnce_UpdateLocation
En plus de ces modifications, une nouvelle propriété est disponible, retournant la version du lanceur d’applications :
ClickOnce_LauncherVersion
Une application .NET peut utiliser ces propriétés directement ou indirectement.
Remarque
Grâce à cette méthode, vous pouvez 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 classe ApplicationDeployment
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’URL et ActivationUri
À compter de .NET 7, dotnet-mage prend en charge un nouveau commutateur : -TrustURLParameters
ou -tu
. Ce commutateur vous permet de définir l’attribut de déploiement demandé à l’aide de l’outil dotnet-mage. Cette modification entraîne une amélioration par rapport à l’ancien outil Mage, qui ne prenait pas en charge cette fonctionnalité et obligeait également à modifier manuellement le manifeste de l’application pour ajouter l’attribut trustURLParameters
, <le déploiement install="true" trustURLParameters="true">.
Vous devez définir trustURLParameters
sur true pour permettre à l’application d’accéder aux paramètres ActivationUri
et URL.
Contenu connexe
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour