Udostępnij za pośrednictwem


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:

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_IsNetworkDeployedClickOnce_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 .

ClickOnce dla platformy .NET w systemie Windows