私は、次のリリースの準備をする際に特定の決定が下された理由をよりよく理解しようとしているプロジェクトを継承しました。既存の製品は、Office 2010 で動作するように設計されています。VS プロジェクトでは、GAC の Office PIA に設定された参照があります。InstallShield プロジェクトでは、Office PIA が実際にパッケージ化され、アプリケーション ディレクトリにインストールされます。
Office 2013 とやり取りする新しいバージョンを準備していたときに、各 Office PIA の古いバージョンと新しいバージョンを同時にプロジェクトに含めることができないか、名前の競合が発生して、できなくなることがわかりました。コンパイルする。また、古いバージョンの Office で新しいバージョンの PIA を使用しようとすると、問題が発生し、アプリがクラッシュすることもわかりました。そのため、2010 年をターゲットとするバージョンと 2013 年をターゲットとするバージョンの、別のバージョンをコンパイルする必要があると結論付けました。
コードとインストーラー プロジェクトをできる限り更新して冗長性を増やさないようにするにつれて、PIA 自体についてもっと考えるようになりました。ユーザーが Office をインストールしている場合、それらの PIA は Office のバージョンの GAC に既に存在している必要があります。新しい PIA をインストーラーに追加すると、インストーラー ファイルが余分なファイルで肥大化するだけのように思えます。ユーザーが Office を持っていない場合、そもそもアプリを使用できません。
それで、私の主な質問は、インストーラーに Office PIA を含め続けなければならない理由はありますか? その場合、ユーザーの GAC に登録する必要がありますか、それとも単にアプリ ディレクトリに配置する必要がありますか? 私の要約に基づいて、PIA がどこにあるべきかについて根本的に誤解していることはありますか?