プロジェクト ファイル XML で Visual Studio から Office 12 PIA を参照すると、参照は Office 14 を指しますが、Visual Studio で参照のプロパティを表示すると、パスは Office 12 PIA へのパスであると主張されます。以下の XML とスクリーンショットの「HintPath」。
誰かがこの動作を説明できますか? これはバインディングのリダイレクトですか?
これは、GAC に Office 14 PIA があり、Visual Studio がアセンブリの最新バージョンを使用しているためだと推測しています。参照をそのままにして、Office 14 PIA を持たないターゲット マシンにアプリケーションを展開すると、どのような影響がありますか? アプリケーションは Office 12 PIA を使用しますか?
Office 12 環境を対象としており、アプリケーションが自動的に Office 14 にリダイレクトされる場合、Office 14 PIA を使用するとコードが機能しなくなることを心配する必要がありますか?
<Reference Include="Microsoft.Office.Interop.Excel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<EmbedInteropTypes>True</EmbedInteropTypes>
<HintPath>..\..\..\..\Program Files\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office12\Microsoft.Office.Interop.Excel.dll</HintPath>
</Reference>
http://msdn.microsoft.com/en-us/library/15s06t57.aspx
http://msdn.microsoft.com/en-us/library/2fc472t2(v=vs.80).aspx
Office PIA をグローバル アセンブリ キャッシュにインストールして登録すると (Office を使用するか、PIA の再頒布可能パッケージをインストールして)、バインディング リダイレクト アセンブリもグローバル アセンブリ キャッシュにのみインストールされます。これらのアセンブリは、プライマリ相互運用機能アセンブリの正しいバージョンが実行時に読み込まれるようにするのに役立ちます。たとえば、2007 Microsoft Office プライマリ相互運用機能アセンブリを参照するソリューションが、同じプライマリ相互運用機能アセンブリの Microsoft Office 2010 バージョンを持つコンピューターで実行される場合、バインド リダイレクト アセンブリは、.NET Framework ランタイムに Microsoft Office 2010 バージョンを読み込むように指示します。プライマリ相互運用アセンブリの。