Bagikan melalui


Membangun aplikasi ClickOnce dari baris perintah

Di Visual Studio, Anda dapat membangun proyek dari baris perintah, meskipun dibuat di lingkungan pengembangan terintegrasi (IDE). Bahkan, Anda dapat membangun kembali proyek yang dibuat dengan Visual Studio di komputer lain yang hanya menginstal .NET Framework. Kemampuan ini memungkinkan Anda untuk mereproduksi build dengan menggunakan proses otomatis, misalnya, di lab build pusat atau dengan teknik pembuatan skrip tingkat lanjut di luar cakupan pembangunan proyek itu sendiri.

Catatan

Untuk membangun aplikasi .NET ClickOnce dari baris perintah, lihat Membangun aplikasi .NET ClickOnce dari baris perintah.

Gunakan MSBuild untuk mereproduksi penyebaran aplikasi .NET Framework ClickOnce

Saat Anda memanggil msbuild /target:publish di baris perintah, perintah ini menginstruksikan sistem MSBuild untuk membangun proyek dan membuat aplikasi ClickOnce di folder terbitkan. Perintah ini setara dengan memilih perintah Terbitkan di IDE.

Perintah ini menjalankan msbuild.exe, yang ada di jalur di lingkungan prompt perintah Visual Studio.

"target" adalah indikator MSBuild tentang cara memproses perintah. Target utama adalah target "build" dan target "terbitkan". Target build setara dengan memilih perintah Build (atau menekan F5) di IDE. Jika Anda hanya ingin membangun proyek, Anda dapat memasukkan msbuild. Perintah ini berfungsi karena target build adalah target default untuk semua proyek yang dihasilkan oleh Visual Studio. Akibatnya, Anda tidak perlu menentukan target build secara eksplisit. Oleh karena itu, memasukkan msbuild adalah operasi yang sama dengan memasukkan msbuild /target:build.

/target:publish Perintah memberi tahu MSBuild untuk memanggil target penerbitan. Target penerbitan tergantung pada target build, yang berarti bahwa operasi penerbitan adalah superset dari operasi build. Misalnya, jika Anda membuat perubahan pada file sumber Visual Basic atau C#, operasi penerbitan secara otomatis membangun kembali rakitan yang sesuai.

Untuk informasi tentang membuat penyebaran ClickOnce lengkap dengan menggunakan alat baris perintah Mage.exe untuk membuat manifes ClickOnce Anda, lihat Panduan: Menyebarkan aplikasi ClickOnce secara manual.

Membuat dan membangun aplikasi ClickOnce dasar dengan MSBuild

Cara termampu untuk membuat profil penerbitan adalah dengan menggunakan Visual Studio. Profil penerbitan diperlukan untuk diterbitkan dengan MSBuild.

Membuat dan menerbitkan proyek ClickOnce

  1. Buka Visual Studio dan buat proyek baru.

    Pilih templat proyek aplikasi Formulir Windows (.NET Framework) atau WPF App (.NET Framework) dan beri nama proyek CmdLineDemo.

  2. Dari menu Build , pilih perintah Terbitkan .

    Langkah ini memastikan bahwa proyek dikonfigurasi dengan benar untuk menghasilkan penyebaran aplikasi ClickOnce.

    Wizard Terbitkan muncul.

  3. Di Wizard Terbitkan, pilih Selesai.

    Visual Studio menghasilkan dan menampilkan halaman web default, yang disebut Publish.htm.

  4. Simpan proyek Anda, dan catat lokasi folder tempat proyek disimpan.

    Langkah-langkah sebelumnya membuat proyek ClickOnce yang telah diterbitkan untuk pertama kalinya. Sekarang Anda dapat mereproduksi build di luar IDE.

Membuat ulang build dari baris perintah

  1. Keluar dari Visual Studio.

  2. Dari menu Mulai Windows, pilih Perintah Baris>Perintah Alat>Perintah Pengembang.

    Perintah Pengembang Visual Studio terbuka.

  3. Di Prompt Perintah Visual Studio, pastikan direktori saat ini menampilkan lokasi proyek yang Anda buat sebelumnya.

    Jika Anda tidak bekerja di direktori proyek, masukkan perintah untuk mengubah ke lokasi yang diinginkan, seperti chdir C:\Users\username\source\repos\CmdLineDemo.

  4. Untuk menghapus file yang sudah ada yang diproduksi di bagian sebelumnya, masukkan rmdir /s publish.

    Langkah ini bersifat opsional, tetapi memastikan build baris perintah menghasilkan semua file baru.

  5. Memasuki msbuild /target:publish.

    Langkah-langkah sebelumnya menghasilkan penyebaran aplikasi ClickOnce lengkap di subfolder proyek Anda bernama Publish. CmdLineDemo.application adalah manifes penyebaran ClickOnce. Folder CmdLineDemo_1.0.0.0 berisi file CmdLineDemo.exe dan CmdLineDemo.exe.manifest, manifes aplikasi ClickOnce. Setup.exe adalah bootstrapper, yang secara default dikonfigurasi untuk menginstal .NET Framework. Folder DotNetFX berisi file yang dapat didistribusikan ulang untuk .NET Framework. File di lokasi ini terdiri dari seluruh set file yang Anda butuhkan untuk menyebarkan aplikasi Anda melalui web atau melalui UNC atau CD/DVD.

Catatan

Sistem MSBuild menggunakan opsi PublishDir untuk menentukan lokasi output, seperti msbuild /t:publish /p:PublishDir="<specific location>".

Menerbitkan output proses

MSBuild menggunakan PublishDir properti untuk mengatur lokasi output build, termasuk artefak build. Nilai PublishDir yang digunakan MSBuild sebagai tujuan penerbitan diperoleh secara default dari PublishDir properti dalam file proyek (.NET Framework). Anda dapat mengambil alih perilaku ini pada baris perintah MSBuild dengan menggunakan sakelar /p . Jika Anda mengambil alih pengaturan, output penerbitan akan masuk ke lokasi yang ditentukan. Output dihasilkan selama langkah MSBuild penerbitan. Setiap target MSBuild dengan AfterTargets="ClickOncePublish" eksekusi setelah salinan ini dibuat.

Properti PublishUrl , tidak seperti PublishDir, tidak digunakan dalam langkah MSBuild. PublishUrl diabaikan ketika Anda memanggil MSBuild secara langsung untuk menerbitkan dari baris perintah.

Saat Penerbitan dimulai di Visual Studio IDE, Visual Studio memanggil MSBuild untuk menerbitkan artefak ke PublishDir lokasi. Setelah langkah MSBuild ini selesai, Visual Studio kemudian menerbitkan file khusus ClickOnce ke lokasi yang ditunjukkan oleh PublishUrl. Langkah kedua ini berjalan di dalam proses Visual Studio. Anda tidak dapat menyuntikkan target/tugas apa pun untuk dijalankan selama langkah ini karena ini adalah proses Visual Studio.

Untuk penyebaran MSBuild yang tidak menggunakan Visual Studio, salin semua file di direktori penyebaran ke tujuan penyebaran atau media. Direktori penyebaran dapat berupa folder di situs web atau situs FTP, berbagi file, atau CD-ROM. Misalnya, Anda dapat menggunakan alat pihak ketiga atau tugas MSBuild kustom untuk menyalin file ClickOnce.

Untuk setiap pasca-pemrosesan di PublishUrl folder, Anda harus memiliki skrip terpisah.

Penting

Jika PublishDir diatur ke lokasi yang sama dengan PublishUrl, output kompilasi duplikat akan disalin ke PublishUrl lokasi. Anda dapat menghindari masalah ini di Visual Studio 2022 versi 17.4 dan yang lebih baru dengan membuat profil baru. Profil baru diatur PublishDir ke lokasi yang berbeda dari PublishUrl. Di akhir operasi penerbitan, file ClickOnce yang relevan disalin dari ke PublishDirPublishUrl lokasi.

Menerbitkan properti

Saat Anda menerbitkan aplikasi dengan menggunakan prosedur sebelumnya, properti berikut disisipkan ke dalam file proyek Anda oleh Wizard Terbitkan. Properti ini secara langsung memengaruhi bagaimana aplikasi ClickOnce diproduksi.

Dalam CmdLineDemo.vbproj / CmdLineDemo.csproj:

<AssemblyOriginatorKeyFile>WindowsApplication3.snk</AssemblyOriginatorKeyFile>
<GenerateManifests>true</GenerateManifests>
<TargetZone>LocalIntranet</TargetZone>
<PublisherName>Microsoft</PublisherName>
<ProductName>CmdLineDemo</ProductName>
<PublishUrl>http://localhost/CmdLineDemo</PublishUrl>
<Install>true</Install>
<ApplicationVersion>1.0.0.*</ApplicationVersion>
<ApplicationRevision>1</ApplicationRevision>
<UpdateEnabled>true</UpdateEnabled>
<UpdateRequired>false</UpdateRequired>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdateUrlEnabled>false</UpdateUrlEnabled>
<IsWebBootstrapper>true</IsWebBootstrapper>
<BootstrapperEnabled>true</BootstrapperEnabled>

Untuk proyek .NET Framework, Anda dapat mengambil alih properti ini di baris perintah tanpa mengubah file proyek itu sendiri. Misalnya, kode berikut membangun penyebaran aplikasi ClickOnce tanpa bootstrapper:

msbuild /target:publish /property:BootstrapperEnabled=false

Properti penerbitan dikontrol di Visual Studio dari halaman properti Terbitkan, Keamanan, dan Penandatanganan Project Designer.

Properti penerbitan berikut diatur di berbagai halaman properti perancang aplikasi.

  • AssemblyOriginatorKeyFile menentukan file kunci yang digunakan untuk menandatangani manifes aplikasi ClickOnce Anda. Kunci yang sama ini mungkin juga digunakan untuk menetapkan nama yang kuat ke rakitan Anda. Properti ini diatur pada halaman Penandatanganan Perancang Proyek.

Properti berikut ini diatur pada halaman Keamanan :

  • Aktifkan Pengaturan Keamanan ClickOnce menentukan apakah manifes ClickOnce dihasilkan. Saat proyek awalnya dibuat, pembuatan manifes ClickOnce nonaktif secara default. Panduan secara otomatis mengaktifkan bendera ini ketika Anda menerbitkan untuk pertama kalinya.

  • TargetZone menentukan tingkat kepercayaan yang akan dipancarkan ke dalam manifes aplikasi ClickOnce Anda. Nilai yang mungkin adalah "Internet," "LocalIntranet," dan "Custom." Internet dan LocalIntranet menyebabkan set izin default dipancarkan ke manifes aplikasi ClickOnce Anda. LocalIntranet adalah default, dan pada dasarnya berarti kepercayaan penuh. Kustom menentukan bahwa hanya izin yang ditentukan secara eksplisit dalam file app.manifest dasar yang akan dipancarkan ke dalam manifes aplikasi ClickOnce. File app.manifest adalah file manifes parsial yang hanya berisi definisi informasi kepercayaan. Ini adalah file tersembunyi, secara otomatis ditambahkan ke proyek Anda saat Anda mengonfigurasi izin di halaman Keamanan .

Properti berikut ini diatur pada halaman Terbitkan :

  • PublishUrl adalah lokasi tempat aplikasi diterbitkan di IDE. Ini disisipkan ke dalam manifes aplikasi ClickOnce jika InstallUrl properti dan UpdateUrl tidak ditentukan.

  • ApplicationVersion menentukan versi aplikasi ClickOnce. Versinya adalah angka empat digit. Jika digit terakhir adalah "*" (tanda bintang), maka ApplicationRevision digantikan untuk nilai yang dimasukkan ke dalam manifes pada waktu build.

  • ApplicationRevision menentukan revisi. Nilai ini adalah bilangan bulat, yang berlipat setiap kali Anda menerbitkan di IDE. Perhatikan bahwa build tidak secara otomatis dinaikkan untuk build yang dilakukan di baris perintah.

  • Install menentukan apakah aplikasi adalah aplikasi yang diinstal atau aplikasi run-from-Web.

  • InstallUrl (tidak ditampilkan) adalah lokasi tempat pengguna menginstal aplikasi. Jika ditentukan, nilai ini dibakar ke dalam bootstrapper setup.exe jika IsWebBootstrapper properti diaktifkan. Ini juga dimasukkan ke dalam manifes aplikasi jika UpdateUrl tidak ditentukan.

  • SupportUrl (tidak ditampilkan) adalah lokasi yang ditautkan dalam kotak dialog Tambahkan/Hapus Program untuk aplikasi yang diinstal.

Properti berikut ini diatur dalam kotak dialog Pembaruan Aplikasi, diakses dari halaman Terbitkan .

  • UpdateEnabled menunjukkan apakah aplikasi harus memeriksa pembaruan.

  • UpdateMode menentukan pembaruan Latar Depan atau Pembaruan latar belakang.

  • UpdateInterval menentukan seberapa sering aplikasi harus memeriksa pembaruan.

  • UpdateIntervalUnits menentukan apakah UpdateInterval nilai berada dalam satuan jam, hari, atau minggu.

  • UpdateUrl (tidak ditampilkan) adalah lokasi tempat aplikasi menerima pembaruan. Jika ditentukan, nilai ini dimasukkan ke dalam manifes aplikasi.

Properti berikut ini diatur dalam kotak dialog Opsi Terbitkan, diakses dari halaman Terbitkan .

  • PublisherName menentukan nama penerbit yang ditampilkan dalam perintah yang ditampilkan saat menginstal atau menjalankan aplikasi. Untuk aplikasi yang diinstal, aplikasi ini juga digunakan untuk menentukan nama folder pada menu Mulai .

  • ProductName menentukan nama produk yang ditampilkan dalam perintah yang ditunjukkan saat menginstal atau menjalankan aplikasi. Untuk aplikasi yang diinstal, aplikasi ini juga digunakan untuk menentukan nama pintasan pada menu Mulai .

Properti berikut diatur dalam kotak dialog Prasyarat , diakses dari halaman Terbitkan .

  • BootstrapperEnabled menentukan apakah akan menghasilkan bootstrapper setup.exe .

  • IsWebBootstrapper menentukan apakah bootstrapper setup.exe berfungsi melalui Web atau dalam mode berbasis disk.

Opsi penggunaan: InstallURL, SupportUrl, PublishURL, UpdateURL

Tabel berikut ini memperlihatkan empat opsi URL untuk penyebaran ClickOnce.

Opsi URL Deskripsi
PublishURL Diperlukan untuk menerbitkan aplikasi ClickOnce ke situs web.
InstallURL Opsional. Atur opsi URL ini jika situs penginstalan berbeda dari PublishURL. Misalnya, Anda dapat mengatur ke PublishURL jalur FTP dan mengatur InstallURL ke URL web.
SupportURL Opsional. Atur opsi URL ini jika situs dukungan berbeda dari PublishURL. Misalnya, Anda dapat mengatur ke SupportURL situs web dukungan pelanggan perusahaan Anda.
UpdateURL Opsional. Atur opsi URL ini jika lokasi pembaruan berbeda dari InstallURL. Misalnya, Anda dapat mengatur ke PublishURL jalur FTP dan mengatur UpdateURL ke URL web.