我刚刚为客户开发了一个自定义VB.NET应用程序,该应用程序严重依赖于通过Microsoft.Office.Interop.Powerpoint实现Powerpoint的自动化。它在我的计算机上运行良好(运行Windows 8,Office 2010和Visual Studio 2010),但无法在我的客户端计算机上运行,该计算机运行Windows 7和Office 2007.我认为该问题是对“Microsoft Office”的引用14.0对象库“和”Microsoft.Office.Interop.PowerPoint“版本14.0,但我不知道如何更改对版本12.0的引用,这可能与Office 2007兼容。
我的Visual Studio中“参考”中唯一可用的版本是14.0。有没有办法获得旧版本,或以其他方式使我的应用程序向后兼容?
我的客户在尝试安装时看到的错误说“应用程序需要首先在全局程序集缓存(GAC)中安装程序集Microsoft.Interop.Powerpoint版本14.0.0.0。”
答案 0 :(得分:0)
我过去曾为Word做过这个,我怀疑它也适用于PowerPoint。 但它可能有点风险,但这是VB.Net实际上闪耀的一个领域:)
基本上,您使用调试版本进行开发并使用发行版本进行部署,并且对象使用不同的绑定类型。条件编译控制两种绑定方法之间的切换。
警告:我没有尝试过,但它应该非常接近你所追求的目标。' Code for where you declare you your objects...
#If DEBUG Then
' Create the object for the dev environment using early binding
Protected PowerpointApp As PowerPoint.Application = Nothing
Protected PowerpointDoc As PowerPoint.Document = Nothing
#Else
' Create the object for the compiled application using late binding
Protected PowerpointApp As Object = Nothing
Protected PowerpointDoc As Object = Nothing
#End If
' Code for where you create your objects...
#If DEBUG Then
' Declare the object for the dev environment using early binding
PowerpointApp = New PowerPoint.Application
#Else
' Declare the object for the compiled application using late binding
PowerpointApp = CreateObject("POWERPOINT.APPLICATION")
#End If
' Use whichever method you want to open the document
PowerpointDoc = PowerpointApp.Documents.Open(etc, etc, etc, ...)