当我在项目文件 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 版本的主要互操作程序集。