2010-04-08 13 views
1

Je souhaite utiliser le programme d'amorçage SqlExpress2008 pour une nouvelle installation sous Windows7. Je ne souhaite pas utiliser l'instance SQLEXPRESS par défaut.Puis-je modifier le fichier package.xml dans le programme d'amorçage SQL pour installer une instance SQL Server nommée?

J'ai essayé de modifier le fichier package.xml situé dans: C: \ Program Files \ Microsoft

SDKs \ Windows \ v7.0A \ \ Bootstrapper Packages \ SqlExpress2008 \ fr \ package.xml

et mise à jour de l'argument de commande nominstance = 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"> 

Mais malheureusement, il crée toujours la valeur par défaut SQLEXPRESS pas CUSTOMINSTANCE

La balise Wix est la suivante:

<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> 

Est-ce le moyen standard pour y parvenir?

Répondre

0

Je ne connais pas de norme mais nous avons passé le nouveau nom d'instance à l'exécutable d'installation SQLExpress sur la ligne de commande. Tout d'abord, décompressez le fichier SQLEXPRADV_x86_ENU.exe dans un répertoire temporaire,

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; 

Ensuite, construire les paramètres de ligne de commande et exécutez le fichier setup.exe extrait. Pour éviter l'installation des outils de gestion, ajoutez «/Caractéristiques = SQL » aux arguments de ligne de commande:

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 a plus sur les arguments pris en charge.

0

Oui, c'est la bonne façon de faire cela, assurez-vous de changer le nom de l'instance dans toutes les occurrences (paramètres x86 et paramètres x64)