Akses properti penyebaran ClickOnce untuk .NET di Windows
Mulai dari .NET 7 dan Visual Studio 2022 versi 17.4, Anda dapat mengakses properti penyebaran ClickOnce dengan menggunakan variabel lingkungan.
Peluncur aplikasi berbagi properti penyebaran aplikasi ClickOnce dengan aplikasi yang diluncurkan (hanya.NET). Properti dibagikan dengan aplikasi dengan menggunakan variabel lingkungan.
Nama variabel sangat cocok dengan properti di kelas .NET Framework ApplicationDeployment . Nama variabel baru menyertakan ClickOnce_
awalan:
- ClickOnce_IsNetworkDeployed
- ClickOnce_ActivationUri
- ClickOnce_CurrentVersion
- ClickOnce_DataDirectory
- ClickOnce_IsFirstRun
- ClickOnce_TimeOfLastUpdateCheck
- ClickOnce_UpdatedApplicationFullName
- ClickOnce_UpdatedVersion
- ClickOnce_UpdateLocation
Selain perubahan ini, properti baru tersedia yang mengembalikan versi peluncur aplikasi:
ClickOnce_LauncherVersion
Aplikasi .NET dapat menggunakan properti ini secara langsung atau tidak langsung.
Catatan
Dengan menggunakan metode ini, Anda dapat mengakses properti penyebaran aplikasi, tetapi .NET 7 tidak mendukung metode ApplicationDeployment yang setara.
Properti access
Contoh kode berikut menunjukkan cara mengakses dua properti secara langsung, ClickOnce_IsNetworkDeployed
dan 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();
}
}
Penggunaan tidak langsung properti ini memerlukan implementasi kelas baru ApplicationDeployment
di tingkat aplikasi. Kelas ini mengabstraksi pembacaan variabel lingkungan dan memberikan pengalaman serupa dengan kelas .NET Framework lama.
Untuk contoh implementasi kelas ini, lihat ApplicationDeployment.cs.
Cuplikan kode berikut menunjukkan cara menggunakan kelas ini:
NameValueCollection nameValueTable = new NameValueCollection();
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
if (ad.ActivationUri != null)
{
nameValueTable = HttpUtility.ParseQueryString(ad.ActivationUri.Query);
}
}
Parameter ActivationUri dan URL
Mulai dari .NET 7, dotnet-mage mendukung sakelar baru, -TrustURLParameters
atau -tu
. Sakelar ini memungkinkan Anda mengatur atribut penyebaran yang diperlukan dengan menggunakan alat dotnet-mage. Perubahan ini adalah peningkatan atas alat Mage lama, yang tidak mendukung fungsionalitas ini dan juga memerlukan modifikasi manual manifes aplikasi untuk menambahkan trustURLParameters
atribut, <deployment install="true" trustURLParameters="true">.
Anda perlu mengatur trustURLParameters
ke true untuk memungkinkan aplikasi mengakses ActivationUri
parameter URL dan .