2012-01-12 16 views
0

私はインストーラを作成するために必要な2006年のアプリケーションがあります。アプリケーションが正しく動作するためには、SQL Serverのインスタンスとデータベース名をショートカットの引数に追加する必要があります。変数が動作しないショートカットベースの引数に引数を追加する

問題は、私の変数値がショートカットの引数に値を設定していないことです。

インストールログから、変数の値がカスタムダイアログから読み込まれ、ショートカットが作成されているのを確認できますが、引数は追加されていません。

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

私が間違っていることは何ですか?

答えて

2

<?define?>は、ビルド時に解決されるプリプロセッサ変数を作成します。実行時のコンセプトであるプロパティが必要です。 <Property>を使用し、すべて大文字のIdを使用してパブリックにし、Secureアトリビュート値をyesに設定してUIからインストールランタイムに伝播します。

+0

ありがとうございました。でも、あなたの答えはあまり意味がありません。私はマークダウンが情報のいくつかを削除したと仮定します:) –

+0

それはそれでした。ありがとう。 –

関連する問題