Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Server bernama instance dengan proyek Penginstal Visual Studio 2017

Ringkasan :Intinya, di bawah ini menyatakan:1) Nonaktifkan tindakan kustom untuk menjalankan SQL Server setup.exe di MSI Anda saat ini. 2) Buat WiX Burn Bundle dasar untuk memulai setup.exe SQLServer pertama, lalu mulai MSI . yang dihasilkan Visual StudioInstaller Project Anda setelah itu. Atau lebih baik lagi, buat seluruh MSI di WiX juga. Alat komersial seperti Pemasang Lanjutan dan Instalshield adalah opsi yang layak - mereka menampilkan dukungan untuk ini yang sudah ada di dalamnya (fitur bervariasi tergantung pada versi prasyarat).

Burn Bundle-Mockup (inspirasi, lebih banyak inspirasi):

Hanya untuk mencoba menunjukkan cara kerja markup WiX Burn:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
     xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">

  <Bundle Name="MyCoolTestApp" Version="1.0.0.0" 
          Manufacturer="Someone" UpgradeCode="PUT-GUID-HERE">

    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />

    <util:FileSearch Path="[WindowsFolder]System32\ucrtbase.dll" Variable="VCDISTINSTALLED"/>

    <Chain>

      <ExePackage SourceFile="vc_redist.x64.exe"
                  DetectCondition="VCDISTINSTALLED"
                  InstallCommand="/q /ACTION=Install"
                  RepairCommand="/q ACTION=Repair /hideconsole" />

      <MsiPackage SourceFile="ShortcutDesktop.msi" />

    </Chain>
  </Bundle>
</Wix>

Penyebab Teknis :Saya bukan ahli dalam Proyek Pemasang Visual Studio - harus dikatakan - setiap saat. Namun, proyek-proyek ini memiliki sejumlah keterbatasan dan keanehan, seperti yang telah Anda temukan. Salah satu kebiasaannya adalah bahwa semua tindakan kustom berjalan dalam mode ditangguhkan dan dalam konteks sistem (berjalan sebagai LocalSystem) tanpa peniruan identitas pengguna peluncuran. Ini kemungkinan penyebab masalah yang terlihat - seperti yang Anda nyatakan sendiri.

Meskipun dimungkinkan untuk memroses MSI yang Anda dapatkan dari Proyek Penginstal VS, lebih baik untuk menghilangkan penggunaan tindakan kustom untuk memulai instalasi SQL Server. Lebih detail di bawah ini. Pemrosesan pos akan melibatkan perubahan jenis tindakan kustom dari 3078 menjadi 1030 sehingga peniruan identitas pengguna diaktifkan - yang juga berarti tindakan kustom tidak berjalan dengan baik - dan karenanya hanya dapat berhasil jika seluruh MSI diluncurkan dengan ditingkatkan.

Catatan :Di bawah ini saya sarankan untuk menggunakan fitur Burn WiX (Open Source), atau alat komersial yang setara dan mumpuni. Fitur Burn WiX dapat digunakan dengan file MSI yang dibuat oleh proyek Penginstal Visual Studio 2017, atau file MSI yang dibuat oleh alat lain apa pun (juga file EXE). Anda cukup mencolokkan MSI yang dihasilkan VS2017 ke dalam WiX Bundle (atau file EXE). WiX jelas juga dapat membuat file MSI itu sendiri (untuk itulah kerangka kerja itu). tautan mulai cepat WiX .

Keunikan Teknologi MSI :Memulai penginstal lain dari tindakan kustom MSI bukanlah praktik yang baik. Jika penginstal lain adalah MSI lain (dan bukan hanya setup.exe non-MSI), maka itu bahkan tidak mungkin untuk melakukannya dengan andal karena keterbatasan teknis (tidak ada dua MSI InstallExecuteSequences dapat berjalan pada saat yang sama karena mutex yang disetel selama instalasi). Dengan kata lain:instalasi MSI bersamaan dilarang dan secara teknis tidak mungkin.

Bakar :Masuk ke fitur Burn WiX - downloader / bootstrapper / sequencer alat yang menjalankan instalasi paket secara berurutan dari pembungkusnya sendiri setup.exe . Itu dapat menginstal file MSI, file EXE, dan jenis paket lainnya - satu demi satu tanpa batasan teknis seperti mutex MSI. Serial, bukan paralel.

Pemasangan SQL Server :Anda dapat memulai penginstal SQL Server EXE melalui bundel Burn seperti itu, dan Anda dapat menentukan parameter yang Anda daftarkan sebagai parameter baris perintah, alih-alih melakukannya dalam kode terkelola (dengan persyaratan runtime yang menyertainya). Kemudian Anda memulai MSI utama Anda setelahnya dari bundel yang sama.

Kursus Burn Crash :Ada kurva belajar untuk Burn. Ini "fiddly" (ini adalah kode / markup - selalu fiddly), tetapi sangat fleksibel. Saya ingin menambahkan Pemasang Lanjutan tampaknya memiliki dukungan yang baik untuk penyebaran SQL Server, bahkan jika tidak pernah punya waktu untuk menyelidiki dengan benar secara rinci. Instalshield dapat menginstal file EXE dan file MSI secara berurutan menggunakan proyek Suite fitur (periksa tangkapan layar tertaut). Tidak yakin dengan dukungan SQL Server secara keseluruhan.

Beberapa Contoh Tautan Bakar :

  • Bootstrap
  • Cara:Menginstal .NET Framework Menggunakan Burn
  • Contoh yang bagus tentang apa yang dapat dilakukan Burn:https://github.com/frederiksen/Classic-WiX-Burn-Theme.
  • Markup Burn Bundle gaya "Hello World" saya sendiri (dengan tautan lebih lanjut).
  • Neil Sleightholm:http://neilsleightholm.blogspot.com/2012/05/wix-burn-tipstricks.html
  • Burn memungkinkan Anda untuk menulis aplikasi GUI pengaturan Anda sendiri (lanjutan):https://github.com/rstropek/Samples/tree/master/WiXSamples/CustomBurnUI (lebih banyak sampel naik satu tingkat)

Beberapa Tautan :

  • Wix Burn:Cara menghentikan Bootstrapper agar tidak menginstal dirinya sendiri
  • Contoh helloworld Wix Burn
  • Daftar lengkap flag/opsi baris perintah untuk Burn/bootstrapper di WiX
  • Wix Burn - template khusus
  • Menambahkan transformasi bahasa .mst ke Burn Bundle Chain? (terlalu banyak tautan)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pemeriksaan Kesehatan SQL Server Proaktif, Bagian 4:ERRORLOG

  2. Cara Menggunakan Pernyataan GO di SQL Server Untuk Menyisipkan Catatan di Kolom Identitas - Tutorial SQL Server / T-SQL Bagian 42

  3. Bagaimana cara menemukan prosedur tersimpan yang berisi <teks>?

  4. Cara Menginstal SQL Server di Mac dengan VirtualBox

  5. Melewati parameter string xml ke prosedur tersimpan SQL Server