2012-06-29 9 views
1

Я унаследовал пользовательское приложение, которое было создано с использованием Visual Studio 2003 и .NET 2.0. Он использует Microsoft Office PIA версии 11 (для Office 2003) и первоначально запускался в Windows XP. Приложение опирается на чтение файлов Excel, Word и Powerpoint, а также Outlook для чтения файлов .PST.Приложение с использованием Microsoft Office interop v.11 с Windows 7, Microsoft Office 2010

Теперь я пытаюсь заставить это приложение работать на 64-разрядной машине Windows 7 с Office 2010. По большей части приложение работает - оно корректно читает файлы .PST и загружает электронные письма и вложения (вместе с правильными метаданными) в Sharepoint. Просто после закрытия приложения и попыток открыть продукты Microsoft Office 2010 (Word, Excel, Powerpoint, Outlook) эти программы имеют тенденцию к сбою. В сообщении об ошибке будет указано: «Microsoft _ _ перестала работать».

Глядя на зрителя событий, журналы, как правило, выглядит следующим образом:

Faulting application name: OUTLOOK.EXE, version: 14.0.6109.5005, time stamp: 0x4e79b881 
Faulting module name: ntdll.dll, version: 6.1.7601.17514, time stamp: 0x4ce7ba58 
Exception code: 0xc0000005 
Fault offset: 0x0002e3fb 
Faulting process id: 0x1b20 
Faulting application start time: 0x01cd5631d6ed41d9 
Faulting application path: C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE 
Faulting module path: C:\WINDOWS\SysWOW64\ntdll.dll 
Report Id: 2f11010e-c226-11e1-8b8d-9cb70de93ccf 

После делать много просмотра, я предполагаю, что он должен делать с приложением, ссылающегося PIA версии 11 для Office 2003, а также версия, которую я имею на этом компьютере, - это версия PIA 14 для Office 2010. Кроме того, я на 100% уверен, что это приложение вызывает сбои приложений Office 2010, поскольку это происходит каждый раз, когда я запускаю это унаследованное приложение. Перезапуск компьютера исправляет эти сбои, но я бы предпочёл не перезапускать каждый раз при запуске этого приложения!

Короткая информация об обновлении исходного кода, есть ли что-нибудь, что я могу сделать, чтобы исправить эту проблему?

EDIT: У меня теперь есть доступ к Visual Studio Express 2010 (C#), и у меня есть файлы исходного кода с помощью Reflector. Поэтому, я думаю, я могу начать делать изменения кода. Я все еще получаю много ошибок, хотя, см. Мои ответы ниже ...

+0

Это офисная надстройка (отдельные надстройки для перспективы, слова и т. Д.)? Или просто отдельное приложение, использующее PIA? Вы можете отладить надстройку и выяснить, где она не работает. Для этого вам понадобится Visual Studio и, возможно, инструмент для декомпиляции и отладки приложений сторонних разработчиков, для которых у вас нет исходного кода (Reflector Pro может это сделать). Просто слушай. В качестве обходного решения вы можете просто сохранить файл reg, чтобы отключить надстройку (предполагая ее часть надстройки кода, а не только отдельное приложение, использующее interop, вызывающий сбои) перед запуском Word? Интересно, что перезагрузка «исправляет» крах ... – JohnZaj

ответ

3

Похоже, что унаследованное приложение все еще держится на двух общих компонентах, что приводит к сбою последующих программ.

Существует не так много, если вы не можете изменить устаревшее приложение. Отладка его, как указано выше, предлагает хороший способ. Но на самом деле вам нужно будет изменить приложение.

Не могли бы вы получить исходный код? Или это не часть «доставки» поставщика?

+0

Хорошо, что я смог установить Visual Studio Express, так что, надеюсь, это будет работать в крайнем случае ... Продавец больше не занимается бизнесом, и я не думаю, что исходный код был частью поставки. Тем не менее, мне удалось загрузить инструмент, который декомпилирует исполняемый файл, поэтому я думаю, что проект Visual Studio готов к отладке сейчас. Он состоит в основном из файлов Visual C# (.cs) Это не офисная надстройка, а отдельное приложение, использующее PIA. – user1492136

0

Я попытался удалить ссылки на старую версию Microsoft Office PIA версии 11 (для Office 2003) и добавить новые ссылки на текущую версию PIA 14 (для Office 2010). Я также изменил целевой .NET на .NET 4 ... У меня возникает много странных ошибок кода при создании пакета.

Основной файл будет иметь

using System; 
using Microsoft.Office.Interop.Excel; 
using Microsoft.Office.Interop.Outlook; 
using Microsoft.Office.Interop.PowerPoint; 
using Microsoft.Office.Interop.Word; 

Но тогда, когда я пытался построить проект, я хотел бы получить все эти ошибки, которые говорят

Microsoft.Office.Interop.Word.System does not contain a definition for 'IO' 

The type name 'Drawing' does not exist in the type 'Microsoft.Office.Interop.Word.System' 

Не знаю, почему Visual Studio не читать Пространство имен «Система». Похоже, что пространство имен Word переопределяет пространство имен System? Когда я удаляю «использование пространства имен Microsoft.Office.Interop.Word», все ошибки сборки исчезают (за исключением объектов или методов, которые фактически используют Word, очевидно)

2

У меня была аналогичная проблема с использованием VB.Net 2012, Interop.Excel для MSO 14.0 и Windows 7, 64-бит. Я смог устранить проблему с помощью целевого .Net 4.0 вместо 4.5 и 64-разрядного процессора.

Смежные вопросы