Ajout d'arguments à des valeurs basées raccourci à partir de variables ne fonctionne pas

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

Question

J'ai une application de l'époque 2006 que je dois créer un programme d'installation. Pour que l'application fonctionne correctement la nécessité nom d'instance SQL Server et la base de données à ajouter aux arguments du raccourci.

La question que j'ai est que mes valeurs variables ne sont pas peuplant les arguments d'un raccourci.

Dans le journal d'installation, je peux voir que les valeurs des variables se peuplées à partir d'un dialogue personnalisé et je peux voir le raccourci créé, mais les arguements ne sont pas ajoutés.

<?define SqlServerInstance="SqlServerInstance" ?>
<?define DatabaseName="DatabaseName" ?>

<Component Id="LWS" Guid="0FB32FAD-83B2-4C0B-B929-C93220E4681A">
    <File Id='LwsEXE' Name='Lws.exe' DiskId='1' Source='..\files\lws\Lws.exe' KeyPath='yes'>
        <Shortcut Id="startmenuLWS" Directory="ProgramMenuFolder" Name="LWS" WorkingDirectory='INSTALLDIR' Icon="LWS.ico" IconIndex="0" Advertise="yes" Arguments="[SqlServerInstance] [DatabaseName]"  />
        <Shortcut Id="desktopLWS" Directory="DesktopFolder" Name="LWS" WorkingDirectory='INSTALLDIR' Icon="LWS.ico" IconIndex="0" Advertise="yes" Arguments="[SqlServerInstance] [DatabaseName]"  />
    </File>
</Component>

<Dialog Id="DatabaseLocationDlg" Width="370" Height="270" Title="[ProductName] Database Connection [Setup]" NoMinimize="yes">
    <Control Id="ServerNameLabel" Type="Text" X="45" Y="73" Width="100" Height="15" TabSkip="no" Text="&amp;SQL Server Name:" />
    <Control Id="ServerNameEdit" Type="Edit" X="45" Y="85" Width="220" Height="18" Property="$(var.SqlServerInstance)" Text="[SqlServerInstance]" />
    <Control Id="DataBaseLabel" Type="Text" X="45" Y="110" Width="100" Height="15" TabSkip="no" Text="&amp;Database Name:" />
    <Control Id="DatabaseEdit" Type="Edit" X="45" Y="122" Width="220" Height="18" Property="$(var.DatabaseName)" Text="[DatabaseName]" />
    <!-- more stuff here-->
</Dialog>

Toutes les idées que je fais mal?

Était-ce utile?

La solution

<?define?> crée une variable de préprocesseur, qui est résolu au moment de la construction. Vous voulez une propriété, qui est un concept d'exécution. Utilisez <Property>, le rendre public à l'aide d'un identifiant qui est tout en majuscules, et définissez la valeur de l'attribut sécurisé yes pour se propager à partir de l'interface utilisateur à l'exécution d'installation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top