1

Microsoft.Office.Interop.Powerpointを介したPowerpointの自動化に大きく依存するクライアント用のカスタムVB.NETアプリの開発を終えたところです。私のコンピューター(Windows 8、Office 2010、およびVisual Studio 2010を実行している)では正常に機能しますが、Windows7およびOffice2007を実行しているクライアントのコンピューターにはインストールできません。問題は「MicrosoftOffice」への参照であると思います。 「14.0オブジェクトライブラリ」および「Microsoft.Office.Interop.PowerPoint」バージョン14.0ですが、Office2007と互換性があると思われるバージョン12.0への参照を変更する方法がわかりません。

Visual Studioの「リファレンス」で使用できるバージョンは、14.0バージョンのみです。古いバージョンを入手する方法、またはアプリを下位互換性のあるものにする方法はありますか?

インストールしようとしたときにクライアントに表示されるエラーには、「アプリケーションでは、最初にアセンブリMicrosoft.Interop.Powerpointバージョン14.0.0.0をグローバルアセンブリキャッシュ(GAC)にインストールする必要があります」と表示されます。

4

1 に答える 1

0

過去に Word でこれを行ったことがありますが、PowerPoint でも同様に機能すると思われます。しかし、それは少し危険かもしれませんが、これは VB.Net が実際に優れている分野の 1 つです :)

基本的に、デバッグ バージョンで開発し、リリース バージョンでデプロイし、オブジェクトは異なるバインディング タイプを使用します。条件付きコンパイルは、バインディングの 2 つの方法の切り替えを制御します。

警告: 私はこれを試していませんが、あなたが求めているものに非常に近いはずです.

' 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, ...)
于 2012-11-08T01:38:32.103 に答える