Я создал плагин для Outlook 2007, который мне удалось установить в Windows 7 с помощью проекта установки в Visual Studio 2010. Он отлично работал на каждой машине с 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. Сборки.
Итак, я предполагаю, что мои вопросы: почему он пытается использовать .NET2? как заставить его использовать .NET4? и как я могу убедиться, что мой установщик использует правильную версию?
LOG: Where-ref bind. Location = C:\Program Files\Microsoft\Setup1\TestAddIn.dll LOG: Appbase = file:///C:/Program Files/AddInSpy/ LOG: Initial PrivatePath = NULL Calling assembly : (Unknown). === LOG: This is an inspection only bind. LOG: No application configuration file found. LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft/Setup1/TestAddIn.dll. ERR: Failed to complete setup of assembly (hr = 0x8013101b). Probing terminated.
11.05.2012