2009-03-27 17 views
3

o2003.msiの前提条件を作成することに成功した人は誰ですか?.NET Office 2003再配布可能なプライマリ相互運用機能アセンブリ(o2003pia.msi)を展開する

ロットがこれについて質問していますが、実際に成功した人は見つかりませんでした。私はsoureが供給されるかもしれないし、供給されないかもしれない.cppファイルを完成するために必要とされる非常に複雑な解決策をいくつか見つける。私もそれらのうちの1つをコンパイルしようとしましたが、ターゲットマシンで設定エラーが発生しました... :-(

o2003.msiをインストールしないと、私のオフィス「Shared Add-In」はオフィス.dllが見つからないので、私はインストーラにそれを含めたいと思っています。

2番目の質問は、前の結果とは関係なく、Office 2007?02203.msiのマシンはどうですか? Office 2003はインストールされていないので、「Office Shared Add-In」用のインストーラを作成するために必要なことがたくさんあるようです...誰も同じ悪夢を経験していますか?

更新: PIA for Office.Core/"office.dll"これは本当にトラットマシンに乗ることです。 「複雑な」解決法(私がそれに努力しても働くことができると知っている)はどれも、この特定のファイルを検出する方法を教えているだけで、WordのPIAはWord & Excelです。これらはとにかく存在するようです。それは正常にインストールされていない場合、o2003pia.msiを確認してインストールする重要なファイルであるoffice.dllです。

答えて

2

これはあまりにも遅すぎるかもしれませんが、ここでは私の会社のオフィス2003と2007のアドインをC#コードを使用してインストールするためのソリューションです。多分それはあなたのために働くことができます。

:2003:{91490409-6000-11D3-8CFE-0150048383C9}

:2007 {50120000から1105

Iはo2003piaされo2007piaインストール両方の製品コードを使用します-0000-0000-0000000FF1CE}

次に、MSI APIを呼び出すと、それぞれのインストール状態を取得できます。ここでは2003年発見の例を示します。

[DllImport("msi.dll")] 
    private static extern MsiInstallState MsiQueryProductState 
     (string productGuid); 
    [DllImport("msi.dll")] 
    private static extern uint MsiGetProductInfo 
     (string productGuid, string propertyName, StringBuilder valueBuffer, ref Int32 bufferSize); 

    bool IsPia2003Installed() 
    { 
     MsiInstallState state = MsiQueryProductState("{91490409-6000-11D3-8CFE-0150048383C9}"); 

     return (state == MsiInstallState.msiInstallStateDefault); 
    } 

あなたは完全にセットアッププロジェクト(私はVisual Studioを使用していると仮定?)あなたが「Windowsインストーラの検索を追加することができます内側にこのすべてを達成しようとしている場合上記のProductCodesをチェックする起動条件。満足すれば、PIAをインストールするカスタムアクションを実行できます。

このソリューションの詳細については、こちらから始めてください(here)。

+0

まことにありがとうございます!まだ「最終的な」インストールパッケージを作成していないので、これは貴重な情報です。 .NETがインストールされる前にC#コードを使用しようとしているのは恐れているので、私は普通のC++に頼らざるを得ないと思います... –

+0

ちょっとダン、私は助けることができてうれしいです。これは達成するのは難しいビジネスです。私たちが行うことは、インストール前に実行され、.Netをチェック/インストールするC++アプリケーションを持っていることです。その後、私たちのインストール中に私たちはアドインをインストールするためのすべての派手なものを行うことができます。 あなたに幸運を! –

0

回答がありませんか?さて、くらいです - 02003pia.msiとo2007pia.msiの両方が不満なく複数回インストールできるので、既にインストールされているかどうかを確認することはそれほど重要ではありません。

1

私はなぜO2003PIA.MSIとO2007PIAを見たのかわかりません。MSI、および以下の製品コードを持って:

O2003PIAProductCode = "{90409419-0006-3D11-C8EF-10054038389C}"

O2007PIAProductCode = "{00002105-5011-0000-0000-000000F01FEC}"

関連する問題