我想跨我的两个wix项目共享变量,但我遇到了问题。Wix工具集 - 跨项目/解决方案的共享变量
基本上我试图完成我的引导程序和MSI的版本号在一个文件中,然后引用这两个项目。
我有三个项目
- 安装 - 这是创建一个.msi文件
- 引导程序安装项目 - 这是一个维克斯引导程序项目,引用并运行在运行时 .msi文件
- 共享 - 这是包含在作为版本号
共享项目包含一个单一的文件我称水珠的片段的单个可变一个wixlib项目alVars.wxs,看起来像这样
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<?define VersionNo = "6.86.123"?>
</Fragment>
</Wix>
引导程序引用这样
<Bundle Name="ProgramName" Version="$(var.VersionNo)" Manufacturer="CompanyName" UpgradeCode="Guid" Compressed="no">
和安装项目这个变量的变量引用这样的 - 并具有共享项目的.wxs参考
<Product Id="*" Name="Program Name" Language="2057" Version="$(var.VersionNo)" Manufacturer="CompanyName" UpgradeCode="guid">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated"/>
<?include GlobalVars.wxs ?>
两个项目都引用设置到包含变量
的wixlib项目当我尝试建立我收到的安装和引导程序的项目都出现此错误
Undefined preprocessor variable '$(var.VersionNo)'.
如果<?include?>
标签解决的问题,我会想到安装项目,以建立
没有人有任何的想法至于我可能在这里做错了什么?
对我来说,它看起来像变量没有被构建试图调用它的时候定义的,但我不能确定,以显示更改为保证变量别的
由于之前被定义寻求帮助
我想你是混合预处理和运行时。 <?define VersionNo =“6.86.123”?>是预处理,它不会创建变量。 –
啊,这是有道理的!那么我该如何做一个变量? (对不起,真的很简单的问题我知道!) – martpendle
你可以使用Windows Installer属性 –