2014-09-04 72 views
0

我有一个C#.NET安装程序类DLL正由InstallShield 2011用于在安装过程结束时执行一些自定义代码。 .NET Installer类当前的目标是.NET Framework 3.5。更改InstallShield中使用的安装程序类的.NET Framework版本

当将.NET Installer类更改为目标.NET Framework 4.0并将新DLL复制到InstallShield项目时,当用于启动自定义安装程序代码时,出现Error 1001消息。

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

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

回答

-1

InstallShield中,.NET框架文件位置没有指向.NET 4

此文件位置在指定的InstallShield - 工具 - 选项 - .NET - .NET框架文件位置。

1

Windows安装程序在自定义操作中重复使用自定义操作沙箱。如果一个自定义动作触发CLR 2.0,另一个自定义动作尝试使用CLR 4.0运行,则会得到BadImageFormatException。这是InstallUtil(安装程序类)自定义操作的众多缺陷之一。

改为研究Windows安装程序XML(WiX)部署工具基础(DTF)自定义操作。它们被封装为原生Win32 DLL自定义操作并与InstallShield兼容。只有本地代码在沙箱中运行,并且所有托管自定义操作都将在本地代码充当MSI API代理的情况下运行。 (东西的InstallUtil自定义操作甚至不能相信与否。)

Deployment Tools Foundation (DTF) Managed Custom Actions

+0

只是要明确,这个问题CLR然后没有看到与威克斯DTF?尽管这是自定义操作沙箱的强大问题。正是那种让我担心.NET和层和依赖的东西。 – 2017-09-12 19:02:16

+0

是的。这一切都在我链接的文章中。 – 2017-09-12 19:22:46

相关问题