Bagaimana cara membuat proyek InstallShield LE untuk menginstal layanan windows?


104

Saya mengunduh Visual Studio 2012 kemarin ketika dirilis di MSDN. Saya perhatikan bahwa beberapa jenis proyek yang kami miliki di tahun 2010 hilang atau berbeda. Perbedaan terbesar bagi saya saat ini adalah penghapusan proyek Penginstal Windows. Sekarang kami dipaksa untuk menggunakan InstallShield LE (Edisi Terbatas). Masalahnya di sini adalah saya menulis banyak Layanan Windows dan saya tidak dapat melihat cara mengatur InstallShield LE. Tampaknya kami (perusahaan saya) harus berinvestasi dalam lisensi untuk edisi profesional.

Adakah yang menemukan cara untuk menginstal layanan di InstallShield LE? Saat menggunakan proyek Penginstal Windows, Anda cukup mengatur tindakan khusus.


1
Menggunakan tindakan kustom InstallUtil dalam proyek Penyebaran Visual Studio sebenarnya adalah praktik yang sangat buruk. Ini pada dasarnya menciptakan kembali roda dengan solusi yang rapuh karena alat pembuatan yang mendasari tidak mengekspos kemampuan asli MSI.
Christopher Painter

Jawaban:


161

Untuk Visual Studio 2012 & InstallShield LE, lakukan hal berikut:

  • Jalankan melalui asisten proyek InstallShield dan tambahkan output utama layanan Anda ke bagian File aplikasi.
  • Setelah Anda selesai dengan asisten proyek, klik dua kali item "File" di bawah langkah kedua dari proyek penyiapan.

Bagian file

  • Klik kanan pada output utama layanan Anda, dan buka properti.
  • Klik tab "COM dan .NET Settings", dan beri tanda centang di kotak centang "Installer Class". masukkan deskripsi gambar di sini
  • Klik Ok

Sekarang, setelah Anda membangun dan menjalankan penginstalan, layanan Anda akan muncul di snap Layanan Windows.

Perhatikan bahwa ini mengasumsikan Anda menambahkan "Penginstal Proyek" ke proyek layanan Anda (Klik kanan pada lembar desain layanan dan klik "tambahkan penginstal"). Saya dapat mengonfirmasi pekerjaan ini pada Windows 8 dengan Visual Studio 2012 / InstallShield LE.


Ok, ini juga berfungsi di VS 2010 dan Win 7 Pro. Saya belum mencobanya di VS 2012, tetapi ini harus dilakukan. Terima kasih.
fizch

3
Apakah mungkin untuk memiliki dialog yang menanyakan pengguna untuk string koneksi database (Server, otentikasi dan nama database) dan memperbarui file konfigurasi layanan windows menggunakan InstallShield LE?
Adelia Benalius

2
Ini adalah panduan yang cukup bagus: c-sharpcorner.com/uploadfile/cb88b2/… .
Jonty


1
Opsi ini tidak memulai layanan setelah penginstalan. Untuk menginstal layanan dan memulainya, di explorer solusi, pilih 3. Konfigurasi Sistem Target> Layanan .
Rajeev

24

Saya baru saja menginstal VS 2012 dengan Install Shield LE. Pada awalnya saya terus mendapatkan kesalahan server internal ISEXP -5036 setelah membangun (ini terjadi setelah menyiapkan proyek ISLE dan menjalankan melalui Asisten Proyek Perisai Instal). Akhirnya saya menemukan bahwa itu mencoba untuk membuat MSI dalam jenis media DVD-5 yang gagal. Untuk beberapa alasan, membuat solusi lagi dari awal entah bagaimana mengenali hanya membangun ke jenis media CD_ROM dan SingleImage yang berfungsi.

Untuk memperbaiki kesalahan 5036, klik tab Build in VS 2012 (menu atas), pilih manajer konfigurasi dan Anda akan melihat bahwa file setup IS Anda dipilih pada konfigurasi DVD-5. Ubah ini menjadi CD_ROM dan klik tutup. Setelah Anda membangun / membangun kembali itu akan selesai tanpa kesalahan IS 5036.

masukkan deskripsi gambar di sini


2
Ini mungkin tidak ada hubungannya dengan masalahnya, tapi itu menyelesaikan masalah saya. Terima kasih! +1
David

Masalah yang sama bagi saya sejak awal, penginstalan default memiliki DVD-5 sebagai konfigurasi dan pengaturan gagal dibuat. Dengan tip Anda, saya mengubahnya menjadi Gambar Tunggal dan dibuat tanpa masalah!
Nick Bork

DVD-5 dipilih. Jawaban sederhana tapi bagus
beaumondo

6

Saat menggunakan kotak centang kelas penginstal dapat berfungsi untuk beberapa contoh, Anda mungkin mengalami kesalahan berikut:

Kesalahan 1001. Layanan yang ditentukan sudah ada

Berikut adalah kutipan dari tautan ini tentang cara menyelesaikan masalah ini:

Untuk Kesalahan: Kesalahan 1001. Layanan yang ditentukan sudah ada

Kesalahan ini akan terjadi jika komponen yang menginstal Layanan .NET salah dikonfigurasi dengan "Kelas Penginstal .NET" diatur ke Ya. Metode untuk menginstal Layanan .NET adalah dengan menggunakan tampilan Komponen \ Pengaturan Lanjut \ Layanan, bukan pengaturan "Kelas Penginstal .NET". Membuat definisi dalam tampilan Component \ Advanced Settings \ Services membuat entri di Windows Installer ServiceControl dan Tabel ServiceInstall. Entri ini digunakan oleh tindakan "InstallServices" Penginstal Windows untuk menginstal Layanan.


dapatkah Anda membantu dan menjelaskan ini .... Tampilan Komponen \ Pengaturan Lanjutan \ Layanan "dapat ditemukan ??
pithhelmet

itu dalam edisi utama penginstal (ffs! microsoft mengapa Anda mengambil jenis proyek penyiapan!) .. Jika Anda memiliki edisi utama. community.flexerasoftware.com/…
Paul Hutchinson

Saya menemukan bahwa ini terkait dengan panjang nama proyek setup, yaitu mengubah nama proyek setup Anda menjadi sesuatu yang lebih pendek seperti "Install" atau "Setup".
Jonty

4

Jika proyek Anda adalah .NET, coba lalu Anda dapat menggunakan kelas ServiceProcessInstaller dengan InstallShield LE.

Untuk membuatnya bekerja dengan InstallShield, Anda harus masuk ke pohon "file" InstallShield dan klik kanan pada file Anda. Kemudian centang kotak centang untuk "Kelas penginstal" pada tab "Pengaturan COM dan .NET".

Saya sudah membuatnya berfungsi, tetapi saya mengalami masalah pada beberapa OS seperti Windows 2008R2. Jarak tempuh Anda mungkin berbeda.

Berikut ini contohnya: http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C


1
Maaf. Saya tidak melihat ini sampai hari ini. Sepertinya itu jawaban yang hampir sama dengan yang saya terima. Saya akan memberi +1.
fizch

4

Saya punya banyak masalah dengan ini.

Sebagai berikut.

  1. InstallShield membutuhkan waktu lama untuk mengunduh
  2. proses pendaftarannya merepotkan.
  3. opsi konfigurasi membingungkan dan terlalu rumit.
  4. solusi yang diterima pada utas ini adalah peretasan dan tidak selalu berhasil - lihat 1001 di dokumentasi - pada dasarnya Anda harus melalui paywall untuk mendapatkan opsi konfigurasi yang tepat untuk menginstal layanan windows.

Solusi bagi saya seperti yang disebutkan di tempat lain - adalah meninggalkan InstallShield

masukkan deskripsi gambar di sini

Sangat mudah sejak saat itu.

Sunting: Perbarui - instal versi terbaru dari sini https://wix.codeplex.com/releases/view/115492 untuk vs 2013/2015


3

Proyek penataan Visual Studio kembali di VS 2013 sebagai ekstensi studio visual.

https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d

Harap perbarui solusi dan proyek Anda ke VS 2013. Jika Anda masih menggunakan VS 2010, Anda mungkin lebih baik dengan meningkatkan langsung ke VS 2013.

Pengalaman saya dengan Installsheild LE adalah bahwa ini sangat unik tetapi setelah Anda mengetahui triknya, itu lebih mudah digunakan. Namun, menurut saya edisi terbatas adalah cara Microsoft dan Flexera untuk menjual edisi berfitur lengkap. Dengan kata lain, pertama-tama kami membayar Microsoft banyak uang untuk Visual Studio dan kemudian mitra mereka (dalam kejahatan) lebih banyak untuk Installsheild. Strategi buruk yang tidak berhasil karena mereka harus mengembalikan proyek penyiapan di VS 2013.


2

Saya telah menulis tentang subjek ini:

Augmenting InstallShield menggunakan Windows Installer XML - Layanan Windows

Pada dasarnya Anda membuat modul gabungan menggunakan WiX untuk merangkum layanan dan kemudian menambahkannya ke proyek installshield Anda. (Pastikan untuk mengasosiasikan ke direktori INSTALLDIR untuk memastikan file Anda berjalan sesuai harapan). Buat dan uji pada VM. Sepotong kue.


Teknologi lain untuk dipelajari? Sampai kemarin, saya belum pernah mendengar tentang WIX. Saya masih belum tahu apa-apa tentang itu. Sepertinya seluruh proses ini menjadi semakin sulit untuk sesuatu yang biasanya hanya memerlukan beberapa klik.
fizch

Hanya membutuhkan beberapa klik untuk MENJALANKAN penginstal. Membuatnya selalu jauh lebih sulit.
Christopher Painter

Ini juga hanya membutuhkan beberapa klik untuk mengatur penginstal. Anda harus mengetikkan judul, pabrikan, dan lain-lain, tetapi Anda tidak harus menulis seluruh dokumen xml. Apa yang bisa Anda ceritakan tentang WIX? Saya dapat mengatakan bahwa Anda jelas tahu banyak tentang itu. Apa itu? Dimana saya mendapatkannya? Bagaimana cara saya menggunakannya? Dll ...
fizch

Saya telah menulis installer selama 16 tahun dan hanya instalasi sederhana dengan satu EXE dan shortcut membawa saya 'hanya dengan beberapa klik' ke penulis. Anda dapat menemukan WiX di CodePlex dan ada buku yang diterbitkan tentang subjek tersebut. Teknologi yang mendasari adalah Penginstal Windows dan dokumentasi tersebut dapat ditemukan di Platform SDK dan di MSDN.
Christopher Painter

5
Serius "ada buku yang diterbitkan tentang subjek ... dokumen di SDK". ?? Chris, kami hanya mencoba untuk memigrasi solusi 2010 kami ke 2012 dan pemasangan / penyiapan menghentikan kami di jalur kami. MS, kembalikan VS Setup / Installer visualstudio.uservoice.com/forums/121579-visual-studio/…
JimSTAT


2

Saya baru saja mendapat beberapa masalah menemukan tempat menambahkan penginstal seperti yang disebutkan dalam jawaban. Jadi begini caranya.

Klik dua kali pada kelas layanan Anda dalam Proyek layanan Windows Anda Sebuah layar kosong dengan teks "Untuk menambahkan komponen ke kelas Anda, seret mereka dari Toolbox dan gunakan jendela Properti untuk mengatur propertinya ..." Klik kanan di mana saja kecuali pada tautan dan pilih "Add Installer"

sampai jumpa


0

Ingatlah bahwa semua penjelasan di atas tidak akan membantu Anda jika Anda berencana untuk membuat peningkatan nanti dari pengaturan itu. InstallShiled LE tidak dapat menghentikan layanan yang berjalan saat Anda meningkatkan. Anda tidak dapat melakukannya baik dari Window Service Installer -> event BeforeInstall.


0

Ingin meletakkan ini di sini;

Pada VS 2015, ketika melakukan ini, saya mengalami kesalahan 1001 saat instalasi berulang kali.

Jawaban di halaman ini menjelaskan bahwa pada versi yang lebih baru (setelah 2012) , tampaknya Anda perlu secara eksplisit membiarkan opsi kelas penginstal tidak dicentang , dan kemudian menambahkan layanan windows Anda di bawah bagian Layanan di bawah Langkah 3 dari proyek penginstal:

Kesalahan 1001 saat menginstal Layanan Windows khusus

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.