我已经创建了一个 Outlook 2007 插件,我已经使用 Visual Studio 2010 中的安装项目设法将它安装在 Windows 7 上。它在我安装它的每台 Windows 7 机器上都运行良好。我之前也成功地在两台 XP 机器上安装了它,但是我在虚拟机上的一个 XP 实例上遇到了问题。
AddInSpy 显示 Outlook 无法加载此插件,因为它无法加载其依赖项之一:
Add-in DLL path is not found. System.BadImageFormatException: Could not load file or assembly 'file:///C:\Program Files\blah\blah\MyAddIn.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
我构建了一个精简的插件,它只是弹出一个消息框,说它已启动,因此我新建了它不是我的插件所依赖的任何其他依赖项,并且我收到了相同的错误消息。
我怀疑“此程序集是由比当前加载的运行时更新的运行时构建的,无法加载。” 是罪魁祸首,稍后在 AddInSpy 生成的错误日志中我得到:
Assembly manager loaded from: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
...
Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config
我已经安装了 .NET 4 客户端配置文件(该插件是为使用而构建的)并在这台机器上进行了扩展,但根据它尝试使用 .NET 2 的日志。我还安装了 VSTO2010 运行时和 Office 2007 Primary Interop组件。
所以我想我的问题是:为什么要尝试使用 .NET2?我如何让它使用.NET4?以及如何确保我的安装程序使用正确的版本?