Msi自定义操作安装程序:错误1001
我正在为我的dll项目创建一个安装程序。在那我有一个参考文件。我将输出添加到自定义操作。我得到一个错误:Msi自定义操作安装程序:错误1001
Error 1001. Error 1001. Unable to get installer types in the C:\Program Files (x86)\Default Company Name\CadmateAddinSetup\AddInToolBar.dll assembly. --> Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
如何解决这个问题? 我有我的dll项目中的wpf用户控件和一些赢的窗体和类。是否因为我没有添加的参考文件?如果是的话如何识别哪个依赖文件丢失。
它很可能是依赖项,但Visual Studio应该尝试将它们添加到您的安装项目中,至少它可以从程序集清单信息中检测到它们。 VS不会检测COM依赖关系,因为没有任何说明您将在运行时链接到哪个Dll。另外,如果你有一个程序集被安装到GAC中,并且你的Dll依赖于它,那么这也会导致失败 - 在Commit阶段之前程序集不在GAC中,所以Commit自定义操作有时会起作用。
另一个问题是您的程序集没有以典型方式加载。它正在使用反射实例化,然后尝试查找安装程序类(因此消息),并绕过任何重定向等。
也可能存在架构不匹配。如果您的Dll是AnyCpu并且它以64位模式运行,则任何32位相关程序集都不会加载。
Fusion Log Viewer可以用于识别缺失的依赖关系。
如果这个DLL有安装过程中要显示的窗体和控件,这通常是不正确的。您永远无法进行无提示安装,表单/控件通常无法正常工作(您没有在正确的Windows UI消息循环环境中运行)。此外,Windows安全性可能会阻止它显示,因为您的自定义操作将(可能)与系统帐户和显示UI一起运行,这与桌面交互服务不推荐使用的原因相同。因此,如果您正在做一些配置,只需在第一次运行应用时从普通用户应用中进行配置。