Bagikan melalui


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:

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 .

ClickOnce untuk .NET di Windows