WIX合并模块:尝试使用$(var.Project.TargetFileName)

时间:2009-02-12 19:17:53

标签: wix wix3 votive

我在VS 2005(.wxs)中创建了一个简单的Wix 3合并模块

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Module Id="TestMergeModule" Language="1033" Version="1.0.0.0">
    <Package Id="ef2a568e-a8db-4213-a211-9261c26031aa" Manufacturer="Me" InstallerVersion="200" />
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="MergeRedirectFolder">
        <Component Id="Test_ModuleComponent" Guid="{1081C5BC-106E-4b89-B14F-FFA71B0987E1}">
          <File Id="Test" Name="$(var.Project.TargetFileName)" Source="$(var.Project.TargetPath)" DiskId="1" />
        </Component>
      </Directory>
    </Directory>
  </Module>
</Wix>

我已将项目“Project”添加为此Merge模块的参考,但我仍然会收到此错误

  

错误7未定义的预处理器变量   '$(var.Project.TargetFileName)'

任何建议,我相信我只是错过了这里显而易见的。

1 个答案:

答案 0 :(得分:2)

良好的做法决定了你总是认为这是你的问题并且它不是一个错误,但经过大量的浪费时间后我会检查,而且看起来可能是因为C ++不支持项目(我的是)

来自WIX3 bug report page

  

日期:2008-10-17 14:53发件人:   jasongin任何C ++项目都没有   MSBuild的。 VS中的C ++项目使用了   不同的项目系统更多   很难与之互操作。那是   为什么Votive v3还不支持   对C ++项目的引用。我们知道   C ++项目引用很重要   功能,但还没有完成。该   工作由功能请求跟踪   1585281。

这是一个open feature request ..但现在已经很久了,所以不确定它是否会被修复: - (