未定义的预处理器变量“$(var.WixInstall.TargetPath)”。 WixInstaller D:work\Extractor\WixInstaller\Product.wxs
Undefined preprocessor variable '$(var.WixInstall.TargetPath)'. WixInstaller D:work\Extractor\WixInstaller\Product.wxs
我在使用 Wix 创建 windows 安装程序时遇到以下错误。
未定义的预处理器变量“$(var.WixInstall.TargetPath)”。 WixInstaller D:\work\Extractor\WixInstaller\Product.wxs
请注意:我尝试了以下答案但没有收获
[ ,
[WiX undefined preprocessor variable ,
[
Product.wxs代码
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="WixInstaller" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="WixInstaller" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="WixInstaller" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="ProductComponent">
<File Source="$(var.WixInstall.TargetPath)" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
获得检测信号:首先要做的事情是:编译你的源代码,这样你就可以检查是否还有其他问题:
绝对路径:请尝试对您知道存在于目标位置:
<File Source="D:\My Files\MyBinary.exe" />
制造商:接下来设置"Manufacturer" attribute
到某事。只要有东西,什么都行。输入您的公司名称 - 显然。
=> 尝试编译。这应该会成功。
Missing Definition:好的,心跳加速,让我们尝试解决问题。你从哪里得到这个 pre-processor 结构:
<File Source="$(var.WixInstall.TargetPath)" />
这是来自某个样本还是什么的?我假设 "WixInstall"
指的是 Visual Studio 解决方案中的 WiX 项目本身?通常,您可以像这样在解决方案中引用项目 - 通过名称 - 但通常您会引用另一个项目,例如“MyBinaryProject”,并且您会像这样引用其构建输出:
<File Source="$(var.MyBinaryProject.TargetPath)" />
您需要确保您引用的项目确实在 Visual Studio 解决方案中。并且您需要添加对它的引用:
- 在您的 WiX 项目中右键单击
"References"
=> Add Reference...
- 在
"Projects"
select你要引用的项目下,按Add
和 OK
.
WiX 文档:Using Project References and Variables - 有关 built-in 变量的详细信息,请参阅 WiX 文档条目当您引用了其他 Visual Studio 个项目时可用。
常规预处理器变量:除了 built-in 预处理器变量之外,当您添加对另一个 [=118] 的引用时=]项目,也可以定义自己的变量:
<?define MyTest= "D:\My Files\MyBinary.exe" ?>
<...>
<File Source="$(var.MyTest)" />
链接:
- 有关高级 pre-processor 功能和其他内容的更多信息:Wix Installer : Setting component condition property when doing a MSIEXEC admin install at command line
- 关于 WiX 中的不同变量类型:
- WiX quick start short version
- WiX quick start very long version
该代码在您的解决方案中引用了一个名为 WiXInstall 的项目。
我在使用 Wix 创建 windows 安装程序时遇到以下错误。 未定义的预处理器变量“$(var.WixInstall.TargetPath)”。 WixInstaller D:\work\Extractor\WixInstaller\Product.wxs
请注意:我尝试了以下答案但没有收获
[
Product.wxs代码
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="WixInstaller" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="WixInstaller" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="WixInstaller" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="ProductComponent">
<File Source="$(var.WixInstall.TargetPath)" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
获得检测信号:首先要做的事情是:编译你的源代码,这样你就可以检查是否还有其他问题:
绝对路径:请尝试对您知道存在于目标位置:
<File Source="D:\My Files\MyBinary.exe" />
制造商:接下来设置
"Manufacturer" attribute
到某事。只要有东西,什么都行。输入您的公司名称 - 显然。
=> 尝试编译。这应该会成功。
Missing Definition:好的,心跳加速,让我们尝试解决问题。你从哪里得到这个 pre-processor 结构:
<File Source="$(var.WixInstall.TargetPath)" />
这是来自某个样本还是什么的?我假设 "WixInstall"
指的是 Visual Studio 解决方案中的 WiX 项目本身?通常,您可以像这样在解决方案中引用项目 - 通过名称 - 但通常您会引用另一个项目,例如“MyBinaryProject”,并且您会像这样引用其构建输出:
<File Source="$(var.MyBinaryProject.TargetPath)" />
您需要确保您引用的项目确实在 Visual Studio 解决方案中。并且您需要添加对它的引用:
- 在您的 WiX 项目中右键单击
"References"
=>Add Reference...
- 在
"Projects"
select你要引用的项目下,按Add
和OK
.
WiX 文档:Using Project References and Variables - 有关 built-in 变量的详细信息,请参阅 WiX 文档条目当您引用了其他 Visual Studio 个项目时可用。
常规预处理器变量:除了 built-in 预处理器变量之外,当您添加对另一个 [=118] 的引用时=]项目,也可以定义自己的变量:
<?define MyTest= "D:\My Files\MyBinary.exe" ?>
<...>
<File Source="$(var.MyTest)" />
链接:
- 有关高级 pre-processor 功能和其他内容的更多信息:Wix Installer : Setting component condition property when doing a MSIEXEC admin install at command line
- 关于 WiX 中的不同变量类型:
- WiX quick start short version
- WiX quick start very long version
该代码在您的解决方案中引用了一个名为 WiXInstall 的项目。