Firebreath prep2010x64 not working



我使用firebreath 1.7开发了浏览器插件。Am使用VS 2010(32位)4.5版我为开发的64位插件运行prep2010x64。脚本文件成功运行。当我构建解决方案时,我从.wxs文件中发现了以下错误。

文件代码:

错误消息:

错误LGHT0204:ICE38:组件cmpF18BE09DE30566DAAE419571E599F99A安装到用户配置文件。它必须使用HKCU下的注册表项作为其KeyPath,而不是文件。

插件项目运行时没有错误,我可以在winform应用程序中使用本机方法从dll访问方法。

但未能在浏览器中注册插件。

检查文件元素的Keypath属性是否设置为yes。

例如:

<DirectoryRef Id="APPLICATIONROOTDIRECTORY">
   <Component Id="myapplication.exe" Guid="PUT-GUID-HERE">
       <File Id="myapplication.exe" Source="MySourceFilesMyApplication.exe" KeyPath="yes"/>
  </Component>
  <Component Id="documentation.html" Guid="PUT-GUID-HERE">
      <File Id="documentation.html" Source="MySourceFilesdocumentation.html" KeyPath="yes"/>
  </Component>
</DirectoryRef>

如果不是问题所在,请将您的代码添加到问题中。

FireBreath的wix代码依赖于heat,而heat不适用于64位DLL。

您可以使用32位构建为其制作自己的.wxs模板,然后使用类似于以下内容的模板:

if (CMAKE_SIZEOF_VOID_P EQUAL 8)
    # On 64 bit heat.exe doesn't seem to work!
    configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Win/WiX/pluginObject.wxs" "${CMAKE_CURRENT_BINARY_DIR}/pluginObject${WIX_HEAT_SUFFIX}.wxs")
    message("Configuring ${CMAKE_CURRENT_SOURCE_DIR}/Win/WiX/pluginObject.wxs to ${CMAKE_CURRENT_BINARY_DIR}/pluginObject${WIX_HEAT_SUFFIX}.wxs")
    set(WIX_HEAT_OVERRIDE "${CMAKE_CURRENT_BINARY_DIR}/pluginObject${WIX_HEAT_SUFFIX}.wxs")
    set(WIX_IS_WIN64 yes)
    SET(WIX_PLATFORM x64)
    SET(ProgramFilesFolder ProgramFilesFolder64)
ELSE()
    set(WIX_IS_WIN64 no)
    SET(WIX_PLATFORM x86)
    SET(ProgramFilesFolder ProgramFilesFolder)
endif()
add_wix_installer( "${PLUGIN_NAME}"
    "${WIX_SOURCE_FILE}"
    PluginDLLGroup
    "${FB_BIN_DIR}/${PLUGIN_NAME}/${CMAKE_CFG_INTDIR}/"
    "${FB_BIN_DIR}/${PLUGIN_NAME}/${CMAKE_CFG_INTDIR}/${FBSTRING_PluginFileName}.dll"
    "${PROJECT_NAME}"
    )

需要注意的主要内容是WIX_HEAT_OVERRIDE,它告诉使用哪个.wxs文件而不是运行HEAT。老实说,我不记得其他东西是用来做什么的,但可以自己检查代码并弄清楚:-P这应该会帮助你开始。

相关内容

  • 没有找到相关文章

最新更新