WIX - 从环境变量路径获取源文件

use*_*888 2 wix

我是WIX的新手,尝试用特征树创建一个msi.

  1. 安装程序应将所有程序集安装在文件夹中C:\ProgramFile\MyDir\MyApp.
  2. 从名为的环境变量读取路径MyFolder.

    <WixVariable Id ="MyFolder" Value="[%MyFolder]"/>
    
    Run Code Online (Sandbox Code Playgroud)
  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>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 现在我想从文件夹中获取MyFolder环境变量的程序集并将其附加到我的Source

    <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>
    
    Run Code Online (Sandbox Code Playgroud)

我收到一个编译错误,说它无法找到bbb.exe.

请告诉我我哪里出错了.

wim*_*ica 5

请参阅预处理器文档.我想你可以简单地从环境变量中定义的路径获取bbb.exe:

<File Id="bbb.exe" Name="bbb.exe" Vital="yes" Source="$(env.MyFolder)bbb.exe" />
Run Code Online (Sandbox Code Playgroud)