我繼承了使用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的應用程序
現在我試圖讓此應用程序可以在具有Office 2010的64位Windows 7計算機上工作。大多數情況下,該應用程序的工作原理 - 正確讀取.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做的,而我在此計算機上安裝的版本是Office 2010的PIA版本14.此外,我100%確定這是導致Office 2010應用程序崩潰的應用程序,因爲每次運行舊應用程序時都會發生這種情況。重新啓動計算機修復這些崩潰,但我寧願不必每次運行此應用程序時重新啓動!
實際上更新源代碼的缺點,有什麼我可以做的,以解決這個問題?
編輯:我現在有權訪問Visual Studio Express 2010(C#),並使用Reflector有源代碼文件。所以我想我可以開始進行代碼更改。儘管如此,我仍然收到了很多錯誤,請參閱下面的回覆...
這是一個辦公室加載項(單獨加載項的Outlook,單詞等)?或者只是一個使用PIA的獨立應用程序?您可以調試加載項並找出它失敗的位置。你需要使用Visual Studio,並且可能是一個反編譯和調試你沒有源代碼的第三方應用程序的工具(Reflector Pro可以做到這一點)。只需要試用。作爲一種解決方法,在啓動Word之前,您是否可以保留一個reg文件來禁用加載項(假設它是代碼的附加部分,而不僅僅是一個使用interop的獨立應用程序,導致崩潰)?有趣的是,重新啓動'修復'崩潰... – JohnZaj