首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装DirectX最终用户运行时的条件

安装DirectX最终用户运行时的条件
EN

Stack Overflow用户
提问于 2014-03-21 12:07:33
回答 1查看 1.1K关注 0票数 2

我使用InstallShield 2013 (基本MSI项目)为我的产品创建安装包。产品需要安装DirectX终端用户运行时,所以我在DirectX解决方案中为DirectX创建了自定义先决条件。

我不想在每次安装我的产品时安装DirectX终端用户运行时,所以我想在先决条件编辑器中为DirectX添加一个条件。我的产品是一个64位的应用程序,它需要C:\Windows\System32 32文件夹中的一些directX文件(至少我知道没有D3DCompiler_43.dll和D3DX9_43.dll它就不能工作)。

因此,我要为我的先决条件添加一些条件:

如果目标框中缺少WindowsFoldersystem32\D3DCompiler_43.dllWindowsFoldersystem32\D3DX9_43.dll文件,则安装DirectX最终用户运行时。

我在两个64位Win7盒上测试了我的安装包。DirectX先决条件条件在第一个框上运行良好-只有在C:\Windows\System32 32中缺少D3DCompiler_43.dll和D3DX9_43.dll时,它才能安装D3DCompiler_43.dll。但是,当我在第二个64位框上安装相同的包时会出现问题:由于某些原因,先决条件条件在那里不能正常工作--它试图找到D3DCompiler_43.dll和D3DX9_43.dll,不是在C:Windows\System32 32中,而是在C:Windows\SysWOW64 64文件夹中。有人能解释为什么即使我硬编码到C:\Windows\System32 32的路径在SysWOW64中吗?

还有一个问题--也许有人知道如何更好地检查目标框中是否安装了DirectX最终用户运行时?我在这里找到了类似的主题check registry for DirectX End-User Runtime,但我不知道在先决条件编辑器中如何使用LoadLibrary("d3dx9_43.dll")函数.

EN

回答 1

Stack Overflow用户

发布于 2015-03-17 20:17:41

在2013年的InstallShield中,有两种先决条件:

  • 在主安装之前安装先决条件
  • 只有在选择要安装的功能时,才安装该功能先决条件。

不能在安装先决条件中调用DLL,因为安装先决条件在MSI之前运行,因此在任何自定义操作之前运行。

如果您创建了一个特性先决条件,您可以设置一个自定义操作来调用DLL (例如您提到的d3dx9_43.dll )。我不熟悉这个DLL,所以我不能告诉您您的自定义操作会是什么样子。可以根据DLL调用的结果打开或关闭此功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22558340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档