Saya memiliki layanan Windows .Net. Saya ingin membuat penginstal untuk menginstal layanan windows itu.
Pada dasarnya, ini harus melakukan hal berikut:
- Paket
installutil.exe
(Apakah itu diperlukan?) - Jalankan
installutil.exe
MyService.exe - Mulai MyService
Juga, saya ingin menyediakan uninstaller yang menjalankan perintah berikut:
installutil.exe /u MyService.exe
Bagaimana cara melakukannya dengan menggunakan Inno Setup?
c#
windows-services
inno-setup
devnull
sumber
sumber
Jawaban:
Anda tidak perlu
installutil.exe
dan mungkin Anda bahkan tidak memiliki hak untuk mendistribusikannya kembali.Inilah cara saya melakukannya di aplikasi saya:
Pada dasarnya Anda dapat memiliki layanan Anda untuk menginstal / menghapus sendiri dengan menggunakan
ManagedInstallerClass
seperti yang ditunjukkan dalam contoh saya.Maka itu hanya masalah menambahkan ke dalam skrip InnoSetup Anda seperti ini:
sumber
Filename: "net.exe"; Parameters: "start WinServ"
. jika tidak berhasil, Anda bisa menambahkan satu sakelar lagi --mulai ke aplikasi c # Anda dan mulai layanan windows langsung dari program dengan menggunakan kelas ServiceController ( msdn.microsoft.com/en-us/library/… ).using System.Reflection;
atau mengubahAssembly
keSystem.Reflection.Assembly
dalam kode di atas.Begini cara saya melakukannya:
Rupanya, penyiapan Inno memiliki konstanta berikut untuk mereferensikan folder .NET di sistem Anda:
Informasi lebih lanjut tersedia di sini .
sumber
Kamu bisa memakai
untuk membuat layanan. Lihat " sc.exe " tentang cara memulai, menghentikan, memeriksa status layanan, menghapus layanan, dll.
sumber
Jika Anda ingin menghindari reboot saat pengguna melakukan upgrade maka Anda harus menghentikan layanan sebelum menyalin exe dan memulai lagi setelahnya.
Ada beberapa fungsi skrip untuk melakukan ini di Layanan - Fungsi untuk Memulai, Menghentikan, Menginstal, Menghapus Layanan
sumber