我以前用过...
<?define PRODUCTVERSION="!(bind.FileVersion.MyLibrary.dll)" ?>
...定义一个版本变量以在我的安装程序中使用。我第一次使用 Heat.exe 将安装程序中需要的文件/文件夹(包括 MyLibrary.dll)收集到一个名为 Source.wxs 的文件中。
如果我尝试构建安装程序,我会收到以下错误:
Unresolved bind-time variable !(bind.FileVersion.MyLibrary.dll)
这就像PRODUCTVERSION
声明的 Product.wxs 文件看不到包含 MyLibrary.dll 详细信息的 Source.wxs 文件,但我知道这不是真的,因为如果我设置PRODUCTVERSION="1.0.0.0"
然后安装程序构建和所有这些文件安装正确。
我怎样才能bind.FileVersion
“看到”MyLibrary.dll?
编辑
如果我使用 Source.wxs 中的非人类友好文件 ID(见下文),我可以让它工作,但这真的是最好的解决方案吗?
<?define PRODUCTVERSION="!(bind.fileVersion.fil023E197261ED7268770DDE64994C4A55)" ?>