Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Från och med .NET 7 och Visual Studio 2022 version 17.4 kan du komma åt ClickOnce-distributionsegenskaper med hjälp av en miljövariabel.
Programstartsprogrammet delar ClickOnce-programdistributionsegenskaper med programmet som startas (endast .NET). Egenskaper delas med programmet med hjälp av miljövariabler.
Variabelnamnen matchar egenskaperna i klassen .NET Framework<xref:System.Deployment.Application.ApplicationDeployment>. De nya variabelnamnen innehåller ett ClickOnce_ prefix:
- ClickOnce_IsNetworkDeployed
- ClickOnce_ActivationUri
- ClickOnce_CurrentVersion
- ClickOnce_DataDirectory
- ClickOnce_IsFirstRun
- ClickOnce_TimeOfLastUpdateCheck
- ClickOnce_UpdatedApplicationFullName
- ClickOnce_UpdatedVersion
- ClickOnce_UpdateLocation
Utöver dessa ändringar finns det en ny egenskap som returnerar programstartversionen:
ClickOnce_LauncherVersion
Ett .NET program kan använda dessa egenskaper direkt eller indirekt.
Note
Med den här metoden kan du komma åt egenskaper för programdistribution, men .NET 7 stöder inte motsvarigheten till ApplicationDeployment-metoder.
Åtkomstegenskaper
Följande kodexempel visar hur du kommer åt två egenskaper direkt, ClickOnce_IsNetworkDeployed och 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();
}
}
Indirekt användning av dessa egenskaper kräver implementering av en ny ApplicationDeployment klass på programnivå. Den här klassen sammanfattar läsningen av miljövariabler och ger en liknande upplevelse som den gamla klassen .NET Framework.
En exempelimplementering av den här klassen finns i ApplicationDeployment.cs.
Följande kodfragment visar hur du använder den här klassen:
NameValueCollection nameValueTable = new NameValueCollection();
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
if (ad.ActivationUri != null)
{
nameValueTable = HttpUtility.ParseQueryString(ad.ActivationUri.Query);
}
}
ActivationUri- och URL-parametrar
Från och med .NET 7 stöder dotnet-mage en ny växel, -TrustURLParameters eller -tu. Med den här växeln kan du ange det distributionsattribut som krävs med hjälp av verktyget dotnet-mage. Den här ändringen är en förbättring jämfört med det gamla Mage-verktyget, som inte stödde denna funktion och dessutom krävde manuell ändring av programmanifestet för att lägga till attributet trustURLParametersdeployment install="true" trustURLParameters="true">.
Du måste ange trustURLParameters true för att programmet ska kunna komma åt parametrarna ActivationUri och URL:en.