WiX可以引用名称中带有句点的项目吗?

时间:2011-04-23 00:57:41

标签: xml visual-studio wix

WiX文件可以reference other projects using $(var.ProjectName.TargetPath)语法。但是,我有一个名称为(My.Project)的项目。我怎么能参考这个?我试过了:

  • $(var.My.Project.TargetPath)
  • $(var.My.Project.TargetPath)
  • $(var.My\.Project.TargetPath)
  • $(var.{My.Project}.TargetPath)
  • $(var.(My.Project).TargetPath)
  • $(var.[My.Project].TargetPath)
  • $(var.MyProject.TargetPath)
  • $(var.My%2EProject.TargetPath)

我得到的构建错误是:

  

未定义的预处理器变量'$(var.My.Project.TargetPath)'

3 个答案:

答案 0 :(得分:13)

答案是肯定的,方法是:

$(var.My.Project.TargetPath)

事实证明,我是一个忘记将项目引用添加到他的安装程序项目的人。

答案 1 :(得分:8)

对不起,我正在使用WiX 3.5,我无法重现您的问题。我创建了一个示例解决方案,其中包含一个名为“Foo.Bar”的类库和一个带有“Foo.Bar”项目引用的合并模块。

我的wixproj看起来像:

  <ItemGroup>
    <ProjectReference Include="..\Foo.Bar\Foo.Bar.csproj">
      <Name>Foo.Bar</Name>
      <Project>{0bd367ce-5072-4161-8447-ff4deed97bd4}</Project>
      <Private>True</Private>
      <DoNotHarvest>True</DoNotHarvest>
      <RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
      <RefTargetDir>INSTALLLOCATION</RefTargetDir>
    </ProjectReference>
  </ItemGroup>

我的wxs看起来像:

<Binary Id="TEST" SourceFile="$(var.Foo.Bar.TargetPath)"/>

答案 2 :(得分:0)

就我而言,我遇到了区分大小写的问题:

$(var.SomePrefix.MyProject.TargetPath)

无法使用名为

的项目
"SomePrefix.Myproject"

重命名项目后,它在MyProject中使用大写字母P。