我有一个 InstallShield 2010 基本 MSI 安装,其中包含与应用程序一起安装的托管代码 .dll 自定义操作。如果我使用 .NET 3.5 构建自定义操作,它会起作用,但如果我使用 4.0 构建它,它会失败。
我在手册中看到了设置 CLR 版本的参考资料,但我不知道如何在 MSI 中实际执行它。
感谢所有帮助。
编辑 1:
我运行了一个简单的 MSI,它使用 .NET 版本 4 运行 CA 构建,以下是从日志中挑选出来的一些有趣的事情:
属性(S):RedirectedDllSupport = 2
属性(S):MsiWin32AssemblySupport = 5.1.2600.5512
属性(S):MsiNetAssemblySupport = 4.0.30319.1
……
MSI (c) (0C:10) [12:12:15:689]:连接到 CA 接口的服务。
InstallShield:成功加载 CLR
InstallShield:加载程序集 [#v4.dll]
InstallShield:解析程序集文件密钥 [#v4.dll]。
InstallShield: - 解析为 C:\Program Files\My Company Name\My Product Name\V4.dll
InstallShield:从路径 C:\Program Files\My Company Name\My Product Name\V4.dll 加载程序集
InstallShield:无法加载托管自定义操作程序集 [#v4.dll]:无法加载文件或程序集“file:///C:\Program Files\My Company Name\My Product Name\V4.dll”或其其中之一依赖关系。此程序集由比当前加载的运行时更新的运行时构建,无法加载。
行动于 12:12:15 结束:v4Test。返回值 3。
……