2011-08-02 21 views
2

機能ツリーを持つmsiを作成しようとしています。WIX - 環境変数パスからソースファイルを取得する

  1. インストーラは、すべてのアセンブリをフォルダC:\ProgramFile\MyDir\MyAppにインストールする必要があります。
  2. MyFolderという環境変数からの読み込みパス。

    <WixVariable Id ="MyFolder" Value="[%MyFolder]"/> 
    
  3. 以下は、アセンブリが読み取られるコードです。

    <Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder" Name="ProgramFilesFolder"> 
    <Directory Id="ProgramFilesFolder.MyDIR" Name="MyDIR"> 
    <Directory Id="PROGRAMFILESFOLDER.MyDIR.MyApp" Name="MyApp"> 
    
    <Component Id="Component.aaa.dll" Guid="guid1"> 
        <File Id="aaa.dll" Source="..\..\OutPut\aaa.dll" /> 
    </Component> 
    
  4. 今、私はそれができないと言って、コンパイルエラーが発生する環境変数ですフォルダMyFolderからアセンブリを取得し、私のソース

    <Directory Id="MyFolder" Name="MyFolder" SourceName="MyFolder"> 
        <Component Id="Component.bbb.exe" Guid="guid2"> 
        <File Id="bbb.exe" Name="bbb.exe" Vital="yes" Source=MyFolder + bbb.exe /> 
        </Component> 
    </Directory> 
    

にそれを追加したいと思いますbbb.exeを検索します。

私が間違っている場所を教えてください。

答えて

5

Preprocessorのマニュアルを参照してください。私はあなたが単に環境変数で定義されたパスからbbb.exeを取得するためにこれを行うことができると思います:

<File Id="bbb.exe" Name="bbb.exe" Vital="yes" Source="$(env.MyFolder)bbb.exe" /> 
+0

私はこれを行う正しい方法だと思います。私はそれが機能しないので、私の答えを削除しようとします。 –

+0

ありがとうWimmel、あなたのソリューションは働いた。 – user873888

関連する問題