Windows üzerinde .NET için ClickOnce dağıtım özelliklerine erişme

.NET 7 ve Visual Studio 2022 sürüm 17.4'den başlayarak, bir ortam değişkeni kullanarak ClickOnce dağıtım özelliklerine erişebilirsiniz.

Uygulama başlatıcı, ClickOnce uygulama dağıtım özelliklerini başlatılmakta olan uygulamayla paylaşır (yalnızca.NET). Özellikler, ortam değişkenleri kullanılarak uygulamayla paylaşılır.

Değişken adları .NET Framework ApplicationDeployment sınıfındaki özelliklerle yakından eşleşmektedir. Yeni değişken adları bir ClickOnce_ ön ek içerir:

Bu değişikliklere ek olarak, uygulama başlatıcı sürümünü döndüren yeni bir özellik kullanılabilir:

  • ClickOnce_LauncherVersion

Bir .NET uygulaması bu özellikleri doğrudan veya dolaylı olarak kullanabilir.

Not

Bu yöntemi kullanarak uygulama dağıtım özelliklerine erişebilirsiniz, ancak .NET 7, ApplicationDeployment yöntemlerinin eşdeğerini desteklemez.

Erişim özellikleri

Aşağıdaki kod örneği, ClickOnce_IsNetworkDeployed ClickOnce_ActivationUrive olmak üzere iki özelliğe doğrudan erişmeyi gösterir.

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();
    }
}

Bu özelliklerin dolaylı kullanımı, uygulama düzeyinde yeni ApplicationDeployment bir sınıfın uygulanmasını gerektirir. Bu sınıf, ortam değişkenlerinin okunmasını soyutlar ve eski .NET Framework sınıfına benzer bir deneyim sağlar.

Bu sınıfın örnek uygulaması için bkz . ApplicationDeployment.cs.

Aşağıdaki kod parçacığında bu sınıfın nasıl kullanılacağı gösterilmektedir:

NameValueCollection nameValueTable = new NameValueCollection();
if (ApplicationDeployment.IsNetworkDeployed)
{
    ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
    if (ad.ActivationUri != null)
    {
        nameValueTable = HttpUtility.ParseQueryString(ad.ActivationUri.Query);
    }
}

ActivationUri ve URL parametreleri

.NET 7'den başlayarak dotnet-mage yeni bir anahtarı veya -tu' -TrustURLParameters yi destekler. Bu anahtar, dotnet-mage aracını kullanarak gerekli dağıtım özniteliğini ayarlamanıza olanak tanır. Bu değişiklik, bu işlevselliği desteklemeyen ve ayrıca deployment install="true" trustURLParameters="true>" özniteliğini <eklemek trustURLParameters için uygulama bildiriminin el ile değiştirilmesini gerektiren eski Mage aracına göre bir geliştirmedir.

Uygulamanın ve URL parametrelerine erişmesine ActivationUri izin vermek için true olarak ayarlamanız trustURLParameters gerekir.

Windows'da .NET için ClickOnce