VC++ Wix 自定义操作
VC++ custom action for Wix
我们在 WIX msis 中使用用 VC++ 编写的 CustomActions。它在 Windows7 机器上运行良好。但是,当我们尝试 运行 Win 10 中的 msi 时,它无法正常工作并失败,因为默认情况下,Win 10 计算机中未安装 Microsoft Visual C++ 2010 Redistributable Package。因此,为了让 MSI 正常工作,我们应该安装 Microsoft Visual C++ 2010 Redistributable Package。但问题是我们无法将它与 MSi 一起安装,因为自定义操作负责选择 INSTALLDIR,这将在安装 anything.So 之前发生,我的问题是
1.)我们真的需要 Visual C++ 2010 Redistributable 用于 运行ning VC++ 自定义操作吗?
2.)在选择 INSTALLDIR 之前如何安装它?
用静态库简单地编译你的DLL。在这种情况下,您的 DLL 没有其他依赖项。
在项目设置中将 General->Use of MFC
设置为 Use MFC in a static library
。
在 C/C++ -> Code Generation
下选择选项 Multithreaded
或 Multithreaded Debug
/MT 或 /MTd。
您可以使用 Dependency Walker 检查是否需要更多必须安装的 DLL。
您应该将 CRT 库静态 link 到您的自定义操作 dll 中。
我们在 WIX msis 中使用用 VC++ 编写的 CustomActions。它在 Windows7 机器上运行良好。但是,当我们尝试 运行 Win 10 中的 msi 时,它无法正常工作并失败,因为默认情况下,Win 10 计算机中未安装 Microsoft Visual C++ 2010 Redistributable Package。因此,为了让 MSI 正常工作,我们应该安装 Microsoft Visual C++ 2010 Redistributable Package。但问题是我们无法将它与 MSi 一起安装,因为自定义操作负责选择 INSTALLDIR,这将在安装 anything.So 之前发生,我的问题是
1.)我们真的需要 Visual C++ 2010 Redistributable 用于 运行ning VC++ 自定义操作吗?
2.)在选择 INSTALLDIR 之前如何安装它?
用静态库简单地编译你的DLL。在这种情况下,您的 DLL 没有其他依赖项。
在项目设置中将 General->Use of MFC
设置为 Use MFC in a static library
。
在 C/C++ -> Code Generation
下选择选项 Multithreaded
或 Multithreaded Debug
/MT 或 /MTd。
您可以使用 Dependency Walker 检查是否需要更多必须安装的 DLL。
您应该将 CRT 库静态 link 到您的自定义操作 dll 中。