2010-05-21 7 views
0

Je crée un package d'installation à l'aide InnoSetup et l'installation de SQL Server 2005 Express. Voici le code ci-dessous qui apparaît dans ma section RUN:installation sans assistance d'SQL Server 2005 Express avec InstanceName LOCAL Server

Filename: "{app}\SQL Server 2005 Express\SQLEXPR.exe" ; Parameters: "-q /norebootchk /qn reboot=ReallySuppress addlocal=all INSTANCENAME=(LOCAL) SCCCHECKLEVEL=IncompatibleComponents:1;MDAC25Version:0 ERRORREPORTING=2 SQLAUTOSTART=1 SAPWD=passwordhere SECURITYMODE=SQL"; WorkingDir: {app}\SQL Server 2005 Express; StatusMsg: Installing Microsoft SQL Server 2005 Express... Please Wait...;Check:SQLVerifyInstall 

Ce que je suis en train d'accomplir est le paquetage SQL Server installer mais seulement le nom de l'instance elle-même référence le nom du nom de la machine et rien de plus. Ce que je reçois à la place est une instance nommée au lieu de locaux tels que MachineName \ SQLEXPRESS qui est pas ce que je veux recevoir.

je besoin d'une instance locale au lieu d'une instance nommée en raison de la façon dont mon code est écrit pour être en mesure d'installer et de parler avec les bases de données en question. Je voudrais le changer, croyez-moi, n'était-ce pas le fait que ce paquet d'installation est un remplacement à un précédent paquet qui a utilisé le programme d'installation de MSDE. Je dois être capable de supporter les deux à travers le code. Toutes les suggestions sont les bienvenues mais une méthode claire et concise pour que l'installateur s'installe tranquillement en utilisant uniquement le nom de la machine est mon objectif principal. Merci pour l'aide et le soutien!

Répondre

1

Voici un exemple pour le réglage du InstanceName dans le code:

; Script generated by the Inno Setup Script Wizard. 
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! 

    [setup] 
    ; NOTE: The value of AppId uniquely identifies this application. 
    ; Do not use the same AppId value in installers for other applications. 
    ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) 
    AppId={{4D044938-6185-4729-8EB9-33CFA5D51993} 
    AppName=My Program 
    AppVerName=My Program 1.5 
    AppPublisher=My Company, Inc. 
    AppPublisherURL=http://www.example.com/ 
    AppSupportURL=http://www.example.com/ 
    AppUpdatesURL=http://www.example.com/ 
    DefaultDirName={pf}\My Program 
    DefaultGroupName=My Program 
    OutputBaseFilename = setup 
    Compression = lzma 
    SolidCompression = yes 

    [Languages] 
    Name: "english"; MessagesFile: "compiler:Default.isl" 

    [Tasks] 
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked 

    [Files] 
    Source: "SQLEXPR.exe"; DestDir: "{app}"; Flags: ignoreversion 
    ; NOTE: Don't use "Flags: ignoreversion" on any shared system files 

    [Run] 
    Filename: "{app}\SQLEXPR.exe" ; Parameters: "INSTANCENAME={code:MyInstanceName|'SQLEXPRESS'}"; 


    [Code] 
    function MyInstanceName(Param: String): String; 
    begin 
     //This sets the value to \MSSQLSERVER. 
     Result := ExpandConstant('{computername}') + '\MSSQLSERVER'; 
    end; 

Cependant, d'après ce que j'ai vu sur le net le nom d'instance doit être MSSQLSERVER si vous voulez qu'il soit l'instance par défaut sur la machine .

+0

Je vais essayer ce rapport et avec le résultat. Merci pour l'info. – Jeff

+0

En fait, ce code ne fait rien de différent pour empêcher l'entrée d'un nom d'instance mais le définit à la place par votre bloc de code. Ce que je cherche la possibilité d'avoir seulement le nom de machine comme nom de SQL Server à la fin de la journée. Si je parcours le programme d'installation de l'interface graphique, c'est possible. Mais reproduire ces résultats en exécutant une installation silencieuse à partir de la ligne de commande semble être un problème. – Jeff

+0

Où vous êtes le code n'a pas abouti à un vrai correctif pour ma question la méthode pour interroger le nom d'ordinateur et en ajoutant le nom d'instance a corrigé un problème que j'ai rencontré plus tard. Je crois que la réponse finale à cela est qu'il n'est pas possible d'accomplir. Merci pour votre aide! – Jeff

Questions connexes