我想要增加支持64操作系统,我NSIS安装。一个安装的任务是司机的安装。我已经写了一个特殊的国家统计局的插件对这项任务。这个插件的使用 驾驶员安装的框架API(DIFxAPI) 安装的驱动程序。

问题是,这API不工作WOW64.

是否有任何方式创建64安装应用程序与国家统计局?有人解决类似的问题与国家统计局?

P.S.:唯一的解决办法,我现在可以看到的是运行的另一个应用程序从安装。这将是64执行安装的驱动程序。但是,这种方式似乎有点困难我。因此,我感兴趣的其他解决方案。

有帮助吗?

解决方案

我遇到一个类似的问题,我认为,唯一的解决办法是运行别的东西(64)通过CreateProcess.

这个文档似乎有一个解决方案使用DPInst(http://www.microsoft.com/whdc/driver/install/32-64bit_install.mspx)虽然我还没有尝试过自己还没有。

将增加其他任何东西我找到。

其他:现在已经得到了它的工作,可以归结为

  1. 下载Windows驱动程序工具包7.1.0版
  2. 安装的ISO和安装全面发展的环境->的工具 C:\
  3. 复制 C:\WinDDK\7600.16385.1\redist\DIFx/dpinst/EngMui/amd64/dpinst.exemyApp/drivers/dpinst64.exe
  4. 复制 C:\WinDDK\7600.16385.1\redist\DIFx/dpinst/EngMui/x86/dpinst.exemyApp/drivers/dpinst32.exe
  5. 复制你的驱动软件包(inf文件等)。 要 myApp/drivers
  6. 到顶部的 myApp.nsi 添加 !include "x64.nsh"
  7. 并在某处安装的部分 myApp.nsi 添加:

${If} ${RunningX64}
       ExecWait '"$INSTDIR\drivers\dpinst64.exe" /c /q /sa /sw /PATH 
"$INSTDIR\drivers"'
    ${Else}
       ExecWait '"$INSTDIR\drivers\dpinst32.exe" /c /q /sa /sw /PATH 
"$INSTDIR\drivers"'
    ${EndIf}

其他提示

NSIS的原生64位版本是在规划阶段,在最好的,所以你将不得不创造一些定制,无论是新的辅助应用程序,或64位版本的RUNDLL32 +某种助手DLL文件。

我专门尝试使用INF文件并安装到从NSIS安装的x64文件系统过滤器驱动程序。

在32位I可以很愉快拨打:

ExecWait '$SYSDIR\RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 $INSTDIR\<myinf>.inf'

但是......上即使有文件重定向关闭使用$ {} DisableX64FSRedirection它仍然没有一个WOW64的事... 64

我发现,让RUNDLL32.EXE对从NSIS 64正常工作,您还需要设置注册表视图为64,以及:

    ${If} ${RunningX64}
        ${DisableX64FSRedirection}
        SetRegView 64
    ${EndIf}

    ExecWait '$SYSDIR\RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 $INSTDIR\<myinf>.inf'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top