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:
- ClickOnce_IsNetworkDeployed
- ClickOnce_ActivationUri
- ClickOnce_CurrentVersion
- ClickOnce_DataDirectory
- ClickOnce_IsFirstRun
- ClickOnce_TimeOfLastUpdateCheck
- ClickOnce_UpdatedApplicationFullName
- ClickOnce_UpdatedVersion
- ClickOnce_UpdateLocation
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_ActivationUri
ve 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.