我有一个目录,我用热量成功地收获了。
Heat.exe dir "$(ProjectDir)\..\source\DataInterface" -v -cg DataInterfaceFiles -gg -scom -sreg -sfrag -srd -dr DATAINTERFACEFOLDER -var wix.DataInterface.Source -out "$(ProjectDir)\Product\DataInterface\DataInterfaceFiles.auto.wxs"
其中一个文件是需要注册 COM 互操作的 dll。
<Component Id="cmpXXXXXX" Guid="{GUID}">
<File Id="filXXXXX4" KeyPath="yes" Source="!(wix.DataInterface.Source)\MyCompany.Ofd.InterfaceLog.dll" />
</Component>
Heat 正在正确生成所需的 .reg 文件,但是,CodeBase
此文件中的值设置为构建服务器上的相对路径:
...
[HKEY_CLASSES_ROOT\CLSID\{GUID}\InprocServer32\2.10.8.1]
"Class"="MyCompany.Ofd.EventLogger"
"Assembly"="MyCompany.Ofd.InterfaceLog, Version=2.10.8.1, Culture=neutral, PublicKeyToken=xxx"
"RuntimeVersion"="v1.1.4322"
"CodeBase"="file:///H:/Installer/source/Services/DataInterface/MyCompany.Ofd.InterfaceLog.dll"
...
这意味着在安装到用户计算机时,由于路径不正确,文件未注册。
我尝试通过加热重新运行这个 reg 文件,看看它是否会做任何事情,但这没有帮助。相对路径仍然存在。
有没有办法用可以安装的文件路径生成 reg 文件?