我有一个C#.NET Installer类DLL,InstallShield 2011使用它来在安装过程结束时执行一些自定义代码。 .NET Installer类目前面向.NET Framework 3.5。
将.NET Installer类更改为目标.NET Framework 4.0并将新DLL复制到InstallShield项目时,我在用于启动的自定义安装程序代码时遇到错误1001消息。
测试计算机安装了最新的.NET Framework版本。
是否需要在InstallShield中更改某些内容以指定.NET Installer类的目标版本?
答案 0 :(得分:1)
Windows安装程序在自定义操作之间重用自定义操作沙箱。如果一个自定义操作触发CLR 2.0并且另一个自定义操作尝试使用CLR 4.0运行,则会出现BadImageFormatException。这是使用InstallUtil(安装程序类)自定义操作的众多缺陷之一。
而是研究Windows Installer XML(WiX)部署工具基础(DTF)自定义操作。它们被封装为本机Win32 DLL自定义操作,并与InstallShield兼容。只有本机代码在沙箱中运行,并且所有托管自定义操作都在进程外运行,本机代码充当MSI API的代理。 (InstallUtil自定义操作甚至无法信任的东西。)
答案 1 :(得分:-1)
在InstallShield中,.NET Framework文件位置未指向.NET 4。
此文件位置在InstallShield - 工具 - 选项 - .NET - .NET Framework文件位置中指定。