在我的Visual Studio 2010安装项目中,我有一个托管的自定义操作。除非安装了.NET 3.5,否则它曾经很好用但不会在Windows 8上运行。我不能强迫我的用户安装.NET 3.5 - 我可以,但我会失去客户。
我有一个模糊的理解,也许它不适用于.NET 4,因为shim DLL(installutillib.dll)依赖于.NET 2?
我能做些什么才能让它发挥作用?我知道托管CA对某些人不满意,但是需要它来编写一个依赖于某种逻辑的注册表项。
由于
答案 0 :(得分:1)
使用installutillib.dll管理CA是不受欢迎的。这是非常糟糕的事情,例如在静默/非交互式安装期间抛出模态1001错误消息,不支持访问MSI会话,使用CLR版本(粘性)纹身MSIEXEC进程以及许多其他可怕的设计缺点。
使用Windows Installer XML(WiX)部署工具基础(DTF)管理的自定义操作。它看起来像是安装程序的本机自定义操作,并且支持表示SupportedRuntimes元素的CustomAction.Config XML。
Deployment Tools Foundation (DTF) Managed Custom Actions
当然,您可能不需要自定义操作来执行您要执行的操作。 Registry表支持[PROPERTY]表达式,它所属的组件可以使用条件来控制安装。