0

我有一个 C# .NET 安装程序类 DLL,InstallShield 2011 使用它在安装过程结束时执行一些自定义代码。.NET Installer 类当前面向 .NET Framework 3.5。

将 .NET Installer 类更改为面向 .NET Framework 4.0 并将新 DLL 复制到 InstallShield 项目时,当自定义安装程序代码用于启动时,我遇到了错误 1001 消息。

测试机器安装了最新的 .NET Framework 版本。

是否需要更改 InstallShield 以指定 .NET Installer 类的目标版本?

4

2 回答 2

1

Windows 安装程序跨自定义操作重用自定义操作沙箱。如果一个自定义操作启动 CLR 2.0,而另一个自定义操作尝试使用 CLR 4.0 运行,您将收到 BadImageFormatException。这是 InstallUtil(安装程序类)自定义操作的众多缺陷之一。

而是研究 Windows Installer XML (WiX) 部署工具基础 (DTF) 自定义操作。它们被封装为本机 Win32 DLL 自定义操作,并与 InstallShield 兼容。只有本机代码在沙箱中运行,所有托管自定义操作都在进程外运行,本机代码充当 MSI API 的代理。(InstallUtil 自定义操作甚至无法相信与否。)

部署工具基础 (DTF) 托管的自定义操作

于 2014-09-04T18:24:37.693 回答
-1

在 InstallShield 中,.NET Framework 文件位置未指向 .NET 4。

此文件位置在 InstallShield - 工具 - 选项 - .NET - .NET Framework 文件位置中指定。

于 2014-09-04T17:45:21.717 回答