Невозможно открыть файлы настроек VSTO 2005 / Excel 2003 после миграции на VSTO2010 - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть проект настройки уровня документа Excel, созданный с использованием VSTO 2005, в котором используется шаблон Excel 2003 (xlt). Теперь я мигрировал в среду VS2010 (.NET4) и Excel 2007.

Мое приложение - это инструмент для создания отчетов, с помощью которого пользователи могут создавать отчеты в Excel. Таким образом, в настоящее время у них есть количество существующих отчетов * .xls и * .xlsx.

Моя проблема в том, что после того, как я перенес свое решение в VSTO2010, я не могу открыть ранее созданные отчеты. Это дает ошибку,

Could not load file or assembly 'MyApp.BusinessAnalytics, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=ff90f512e10aef0d' or one of its dependencies. This 
assembly is built by a runtime newer than the currently loaded runtime and cannot be 
loaded.

Я использую MSI для установки приложения.

Когда я сравнивал отчеты приложений, созданные с использованием версии VS2005 и версии VS2010, я заметил, что «_AssemblyName», «_AssemblyLocation» и «Solution ID» различаются в 2 версиях. Например, версия 2005 / Excel 2003 имеет * для _AssemblyName, но 2010 имеет «4E3C66D5-58D4-491E-A7D4-64AF99AF6E8B».

Я включил журнал привязки сборки. и обнаружил исключение привязки сборки, используя fuslogvw.exe

Запись в журнале привязки сборки:

*** Assembly Binder Log Entry (8/3/2011 @ 11:57:28 AM) ***

The operation failed.
Bind result: hr = 0x8013101b. No description available.

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Running under executable C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = CORPNET\vohelk
LOG: DisplayName = Ifs.Application.BusinessAnalytics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff90f512e10aef0d
 (Fully-specified)
LOG: Appbase = file:///C:/Program Files (x86)/IFS Applications/IFS Business Analytics/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling assembly : (Unknown).

LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Program Files (x86)\IFS Applications\IFS     Business Analytics\Ifs.Application.BusinessAnalytics.dll.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework    \v2.0.50727\config\machine.config.
LOG: Post-policy reference: Ifs.Application.BusinessAnalytics, Version=1.0.0.0,     Culture=neutral, PublicKeyToken=ff90f512e10aef0d
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/IFS Applications/IFS Business Analytics/Ifs.Application.BusinessAnalytics.DLL.
LOG: Assembly download was successful. Attempting setup of file: C:\Program Files (x86)\IFS Applications\IFS Business Analytics\Ifs.Application.BusinessAnalytics.dll
LOG: Entering download cache setup phase.
ERR: Error extracting manifest import from file (hr = 0x8013101b).
ERR: Setup failed with hr = 0x8013101b.
ERR: Failed to complete setup of assembly (hr = 0x8013101b). Probing terminated.

Есть ли у вас какие-либо подсказки по этому поводу. Большое спасибо за помощь в этом.

1 Ответ

0 голосов
/ 08 ноября 2011

Обратите внимание, что в вашем журнале опций менеджер сборки все еще от v2.0 (это то, откуда приходит сообщение, так как он пытается загрузить сборку v4 во время выполнения v2)

Обновление требует немного больше работы, чем простое его открытие в vs2010, особенно если вы переходите на framework V4. Быстрый обходной путь для вас также может быть нацелен на framework 3.5 вместо 4

Как и что вам нужно изменить, зависит от того, откуда вы пришли и что вы используете. Взгляните на эти два документа MSDN по обновлению и внимательно изучите эти шаги для вашего сценария. Это что-то вроде чтения, но я воспринимал его как довольно полное и полезное.

Обновление и перенос офисных решений а также Перенос офисных решений на .NET Framework 4

...