Posso modificare file package.xml in SQL programma di avvio automatico di installare un'istanza di SQL Server denominata

StackOverflow https://stackoverflow.com/questions/2603886

Domanda

Voglio usare lo SqlExpress2008 Bootstrapper per una nuova installazione su Windows7, io non voglio usare il default SQLEXPRESS istanza.

Ho cercato di modificare il file package.xml situata in: C: \ Program Files \ Microsoft

  

SDK \ Windows \ v7.0A \ Bootstrapper \ Packages \ SqlExpress2008 \ it \ package.xml

e aggiornato l'instancename argomento del comando = CUSTOMINSTANCE

    <Command PackageFile="SQLEXPR32_x86_ENU.EXE"
             Arguments='/q /hideconsole /action=Install /features=SQL /instancename="CUSTOMINSTANCE" /enableranu=1 /sqlsvcaccount="NT Authority\Network Service" /AddCurrentUserAsSqlAdmin /skiprules=RebootRequiredCheck'
             EstimatedInstalledBytes="225000000"
             EstimatedInstallSeconds="420">

Ma purtroppo crea ancora il predefinito SQLEXPRESS non CUSTOMINSTANCE

Il tag Wix è il seguente:

   <sql:SqlDatabase
              Id="SqlDatabaseCore"
              ConfirmOverwrite="yes"
              ContinueOnError="no"
              CreateOnInstall="yes"
              CreateOnReinstall="no"
              CreateOnUninstall="no"
              Database="MyDatabase"
              DropOnInstall="no"
              DropOnReinstall="no"
              DropOnUninstall="no"
              Instance="[SQLINSTANCE]"
              Server="[SQLSERVER]">
              <sql:SqlFileSpec
                Id="SqlFileSpecCore"
                Filename="[CommonAppDataFolder]MyCompany\Database\MyDatabase.mdf"
                Name="MyDatabase" />
              <sql:SqlLogFileSpec
                Id="SqlLogFileSpecCore"
                Filename="[CommonAppDataFolder]MyCompany\Database\MyDatabase.ldf"
                Name="MyDatabaseLog" />

<Property Id='SQLSERVER'>.</Property>
<Property Id='SQLINSTANCE'>CUSTOMINSTANCE</Property>

E 'questo il modo standard per raggiungere questo obiettivo?

È stato utile?

Soluzione

Non so di una standard, ma abbiamo superato il nuovo instancename al file eseguibile di installazione SQLExpress sulla riga di comando. In primo luogo, decomprimere il file SQLEXPRADV_x86_ENU.exe in una directory temporanea,

string workingDir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

string pathToSQLSetupTempDirectory = workingDir + Path.DirectorySeparatorChar + "sqlsetup";

if (!System.IO.Directory.Exists(pathToSQLSetupTempDirectory))
{
System.IO.Directory.CreateDirectory(pathToSQLSetupTempDirectory);
}

string path = Path.GetFullPath(workingDir + Path.DirectorySeparatorChar + "SQLEXPRADV_x86_ENU.exe");
string args = "/Q /X:" + pathToSQLSetupTempDirectory;

Poi, costruire i parametri della riga di comando ed eseguire il file setup.exe estratto. Per impedire l'installazione degli strumenti di gestione, aggiungere "/ Features = SQL" per gli argomenti della riga di comando:

 path = pathToSQLSetupTempDirectory + Path.DirectorySeparatorChar + "Setup.exe";
 args = "/QUIET /Action=Install /Features=SQL,Tools /InstanceName=" + instanceName +
    " /SECURITYMODE=SQL /TCPENABLED=1 /SAPWD=" + sqlSAPswd + " /SQLSYSADMINACCOUNTS=\"Builtin\\Administrators\" /SQLSVCACCOUNT=\"NT AUTHORITY\\NETWORK SERVICE\"";

http://msdn.microsoft.com/en-us/library /ms144259.aspx ha più sugli argomenti supportati.

Altri suggerimenti

Sì, questo è il modo corretto per farlo, basta assicurarsi che si modifica il nome di istanza nella tutte le occorrenze (x86 e x64 parametri parametri)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top