Izinkan ClickOnce untuk menginstal beberapa program yang diterbitkan dari proyek yang sama di lingkungan yang sama (.NET Framework edisi saja)

Halaman Diperbarui :
Tanggal pembuatan halaman :

Lingkungan pemeriksaan operasi

Visual Studio
  • Studio Visual 2022
.NET Kerangka Kerja
  • .NET Kerangka Kerja 4.8

Lingkungan yang Diperlukan

Kerangka
  • Formulir Windows (.NET Framework) secara umum
  • WPF (.NET Framework) secara umum

Pada awalnya

Tips ini menjelaskan cara menginstal beberapa ClickOnce yang diterbitkan dari proyek yang sama secara terpisah di lingkungan yang sama.

Tentang prosedur untuk menerbitkan beberapa salinan dari proyek yang sama dalam konfigurasi yang berbeda

Misalnya, bahkan dalam proyek yang sama, jika konten pemrosesan diubah tergantung pada konfigurasi build, Anda mungkin ingin menerbitkan sebagai program terpisah. Hal ini dimungkinkan dalam versi .NET (Core), tetapi tidak dalam versi .NET Framework dengan fitur standar Visual Studio.

Metode ini dirangkum dalam tips berikut menggunakan program batch. Tips ini dijelaskan dengan premis bahwa konten berikut telah selesai.

Kondisi di mana ClickOnce menginstal sebagai aplikasi terpisah

Jika Anda mempublikasikan menggunakan program batch yang dijelaskan di atas, konfigurasi build diubah, tetapi keduanya diperlakukan sebagai aplikasi yang sama, Jika Anda mencoba menginstal dua di lingkungan yang sama, akan ada konflik, dan instalasi akan gagal bahkan jika Anda mencoba menginstal nanti.

Saya perlu membuat ini tampaknya menjadi aplikasi terpisah, tetapi menurut artikel yang dirujuk, parameter berikut mengidentifikasi aplikasi:

Referensi: (.NET) Ketika saya meluncurkan aplikasi setelah menerbitkan dengan ClickOnce, saya mendapatkan bahwa "ID penempatan tidak cocok dengan langganan"

  • Nama Aplikasi
  • Token Kunci Publik
  • Budaya
  • Arsitektur prosesor (misalnya, x86)

Di antara ini, saya pikir tidak diinginkan untuk mengubah "budaya" dan "arsitektur prosesor" karena ada kemungkinan hasil pemrosesan yang tidak diinginkan.

Saya pikir ada cara untuk mengubah "nama aplikasi", Pada dasarnya, tidak disarankan karena hanya satu nama yang dapat diberikan untuk satu proyek. Ada kemungkinan bahwa beberapa definisi dapat dibuat dengan membangun konfigurasi dan parameter kondisi dalam konten file proyek, Karena hanya satu UI yang dapat diatur di Visual Studio, ini sedikit berbahaya karena mungkin ditimpa tergantung pada operasinya.

Sisanya adalah "token kunci publik", tetapi yang ini memungkinkan Anda untuk membuat beberapa sertifikat, Karena dapat ditentukan sebagai parameter pada saat penerbitan ClickOnce, saya ingin mengidentifikasi aplikasi dengan waktu ini.

Prosedur pemeriksaan operasi

Dari titik pembuatan proyek ke titik di mana ia siap untuk diterbitkan sebagai file batch, itu sama dengan tips berikut, jadi silakan merujuknya untuk prosedur hingga saat itu.

Membuat sertifikat

Kali ini, kami akan mengkonfirmasi dengan sertifikat uji untuk sampel. Awalnya, ini harus dilakukan dengan sertifikat reguler, tetapi karena itu akan memerlukan prosedur selain mata pelajaran utama seperti pembuatan sertifikat dan persiapan otoritas sertifikat, saya akan mengecualikan penjelasan yang terkait dengan sertifikat. Dalam produksi, tidak apa-apa untuk mengganti file sertifikat pengujian dengan file produksi.

Setelah Anda membuat proyek dan membuat batch untuk diterbitkan, kembali ke Visual Studio. Buka properti proyek dan pilih Tanda tangani dari menu di sebelah kiri. Ada tanda centang untuk "Tanda tangani manifes ClickOnce" jadi periksalah.

Sekarang buat dua sertifikat. Kali ini kita akan membuatnya di layar ini, tapi ". format file pfx", tidak ada masalah dengan membuat sertifikat dengan cara lain.

Ada tombol "Buat Sertifikat Tes" di sudut kanan bawah, jadi klik.

Anda juga dapat memasukkan kata sandi, tetapi berfungsi apakah Anda memasukkannya atau tidak. Namun, jika Anda ingin memasukkan kata sandi, prosedurnya akan merepotkan, jadi saya tidak akan memasukkannya kali ini.

File sertifikat (.pfx) telah dibuat untuk proyek Anda. Nama file yang dihasilkan di sini sudah diperbaiki tetapi dapat diubah nanti. Omong-omong, validitas sertifikat tes yang dibuat di sini adalah satu tahun. Setelah satu tahun, Anda perlu membuat ulang sertifikat baru.

Ikuti langkah-langkah yang sama untuk membuat yang lain.

Kali ini, kami akan menerbitkan di build Debug dan build Release, jadi kami akan mengubah nama menjadi yang jelas.

Modifikasi batch

Buka file batch yang Anda buat (.bat) di editor teks dan tambahkan yang berikut ini ke parameter msbuild:

deskripsi nama parameter diperlukan
ManifestKeyFile Nama file (.pfx) sertifikat. Tentukan jalur relatif terhadap atau absolut dari file proyek.
ManifestCertificateThumbprint Cap jempol sertifikat manifes. Nilai yang akan dimasukkan bisa apa saja, tetapi harus dimasukkan dengan segala cara.
Nama Produk Nama produk. Ini menjadi nama tampilan menu mulai atau daftar program.
Nama Penerbit Nama perusahaan publik. Ini menjadi nama folder saat mengatur program di menu mulai.

Berdasarkan hal di atas, ubah file patch sebagai berikut.

ClickOnceDebug menerbitkan.bat (contoh)

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /t:CopyPublishedApplication /p:Configuration=Debug /p:PublishUrl="publish\Debug\\" /p:InstallUrl="\\xxxxServer\publish_Debug\\" /p:ManifestKeyFile="ClickOnceMultipleInstallDebug.pfx" /p:ManifestCertificateThumbprint="Debug" /p:ProductName="CliclOnce テスト Debug システム" /p:PublisherName="Sorceryforce"

Masalah ClickOnceRelease.bat (Contoh)

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /t:CopyPublishedApplication /p:Configuration=Release /p:PublishUrl="publish\Release\\" /p:InstallUrl="\\xxxxServer\publish_Release\\" /p:ManifestKeyFile="ClickOnceMultipleInstallRelease.pfx" /p:ManifestCertificateThumbprint="Release" /p:ProductName="CliclOnce テスト Release システム" /p:PublisherName="Sorceryforce"

ManifestKeyFile Setiap nilai menentukan file sertifikat yang berbeda. ManifestCertificateThumbprint Nilainya bisa apa saja, tetapi pastikan untuk memasukkannya karena aplikasi tidak dapat diidentifikasi sebagai yang lain jika Anda tidak memasukkannya.

Ngomong-ngomong, karena dua program diinstal di lingkungan yang sama kali ini, parameter telah ditambahkan sehingga ProductName mereka dapat dibedakan. PublisherName sesuai keinginan Anda.

masalah

Setelah input, jalankan setiap file batch dan publikasikan.

Jika xxxx.application ada dalam file yang Anda terbitkan, buka di editor teks dan pastikan itu memilikipublicKeyToken nilai yang berbeda.

pasang

Setelah menyalin file yang diterbitkan ke folder publik, jalankan untuk menginstalnya setup.exe .

Jika Anda memasukkan sertifikat pada saat penerbitan, layar berikut akan ditampilkan pada saat instalasi. Jika ini adalah sertifikat pengujian, penerbit tidak dapat dikonfirmasi, jadi instal apa adanya.

Program pertama diinstal dan diluncurkan.

Saya akan mencoba menginstal yang lain.

Yang lainnya juga dipasang dan diluncurkan.

Tentu saja, keduanya bekerja pada saat yang sama.

ProductName Karena terpasang, itu ditampilkan secara terpisah di menu mulai.

Anda juga dapat melihat keduanya di daftar aplikasi.