0

Excel のカスタマイズを xlsm ドキュメントの背後にあるコードとして配布します。以前は、ビルド サーバーに Office 2007 がインストールされていて、Office 2007 Primary Interop Assemblies を使用して xlsm をビルドしました (インストールの前提条件として追加しました)。

最近、ビルド サーバーを Office 2013 にアップグレードし、Microsoft Visual Studio 2010 Tools for Office Runtime を使用して xlsm のビルドを開始しました (インストールの前提条件として追加しました)。

問題: 以前に変更を古い xlsm ファイル (Office2007PIA を使用して作成) に保存したユーザーは、カスタマイズの新しいバージョンがマシンにインストールされると、古いファイルを開くことができません。次の例外が発生します。

************** Exception Text **************
System.Runtime.InteropServices.COMException (0x80070490): Element not found. (Exception from HRESULT: 0x80070490)
at Microsoft.VisualStudio.Tools.Office.Runtime.Interop.IHostItemProvider.GetHostExtender(String extenderType, String extenderCookie, IntPtr& extenderObject)
at Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.Microsoft.Office.Tools.IHostItemProvider.GetHostExtender(Type primaryType, String primaryCookie)
at Microsoft.Office.Tools.Excel.ControlSiteImpl..ctor(IServiceProvider serviceProvider, IHostItemProvider hostItemProvider, String primaryCookie, String identifier, Object containerComponent, UInt32 officeVersion, Control control, _OLEObject extenderControl, Boolean isDynamic)
at Microsoft.Office.Tools.Excel.FactoryImpl.Microsoft.Office.Tools.Excel.Factory.CreateControlSite(IServiceProvider serviceProvider, IHostItemProvider hostItemProvider, String primaryCookie, String identifier, Object containerComponent, Control control)
at Microsoft.Office.Tools.Excel.Controls.Label..ctor(Factory factory, IHostItemProvider hostItemProvider, IServiceProvider serviceProvider, String cookie, String extenderCookie, Object container, String identifier)
at MyCustomization.Sheet1.InitializeControls()
at MyCustomization.Sheet1.Initialize()
at Microsoft.Office.Tools.Excel.WorksheetBase.Microsoft.Office.Tools.EntryPoint.Initialize()
at Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.ExecutePhase(ExecutionPhases executionPhases)
at Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.Microsoft.VisualStudio.Tools.Office.Runtime.Interop.IExecuteCustomization2.LoadEntryPoints(IntPtr serviceProvider)

質問: 新しいビルドを、古いビルドを使用して保存された xlsm ファイルと後方互換性を持たせるにはどうすればよいですか?

4

0 に答える 0