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)'
答案 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。