Uzyskiwanie dostępu do właściwości wdrażania technologii ClickOnce dla platformy .NET w systemie Windows
Począwszy od programów .NET 7 i Visual Studio 2022 w wersji 17.4, można uzyskać dostęp do właściwości wdrożenia technologii ClickOnce przy użyciu zmiennej środowiskowej.
Uruchamianie aplikacji udostępnia właściwości wdrożenia aplikacji ClickOnce z uruchomioną aplikacją (tylko platforma.NET). Właściwości są współużytkowane z aplikacją przy użyciu zmiennych środowiskowych.
Nazwy zmiennych są ściśle zgodne z właściwościami w klasie .NET Framework ApplicationDeployment . Nowe nazwy zmiennych zawierają ClickOnce_
prefiks:
- ClickOnce_IsNetworkDeployed
- ClickOnce_ActivationUri
- ClickOnce_CurrentVersion
- ClickOnce_DataDirectory
- ClickOnce_IsFirstRun
- ClickOnce_TimeOfLastUpdateCheck
- ClickOnce_UpdatedApplicationFullName
- ClickOnce_UpdatedVersion
- ClickOnce_UpdateLocation
Oprócz tych zmian dostępna jest nowa właściwość zwracająca wersję uruchamiania aplikacji:
ClickOnce_LauncherVersion
Aplikacja .NET może używać tych właściwości bezpośrednio lub pośrednio.
Uwaga
Przy użyciu tej metody można uzyskać dostęp do właściwości wdrażania aplikacji, ale platforma .NET 7 nie obsługuje odpowiedników metod ApplicationDeployment.
Właściwości dostępu
Poniższy przykład kodu pokazuje, jak uzyskać bezpośredni dostęp do dwóch właściwości i ClickOnce_IsNetworkDeployed
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();
}
}
Użycie pośrednie tych właściwości wymaga implementacji nowej ApplicationDeployment
klasy na poziomie aplikacji. Ta klasa abstrakcji odczyt zmiennych środowiskowych i zapewnia podobne środowisko do starej klasy .NET Framework.
Aby zapoznać się z przykładową implementacją tej klasy, zobacz ApplicationDeployment.cs.
Poniższy fragment kodu pokazuje, jak używać tej klasy:
NameValueCollection nameValueTable = new NameValueCollection();
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
if (ad.ActivationUri != null)
{
nameValueTable = HttpUtility.ParseQueryString(ad.ActivationUri.Query);
}
}
Identyfikator ActivationUri i parametry adresu URL
Począwszy od platformy .NET 7, system dotnet-mage obsługuje nowy przełącznik -TrustURLParameters
lub -tu
. Ten przełącznik umożliwia ustawienie wymaganego atrybutu wdrożenia przy użyciu narzędzia dotnet-mage. Ta zmiana jest ulepszeniem starego narzędzia Mage, które nie obsługiwało tej funkcji, a także wymagał ręcznej modyfikacji manifestu aplikacji w celu dodania atrybutu trustURLParameters
<deployment install="true" trustURLParameters="true".>
Należy ustawić trustURLParameters
wartość true, aby zezwolić aplikacji na dostęp ActivationUri
do parametrów adresu URL i .