gpt4 book ai didi

vb.net - 两台不同计算机上的不同互操作引用不起作用

转载 作者:行者123 更新时间:2023-12-01 18:35:13 25 4
gpt4 key购买 nike

当我在计算机上添加对 Microsoft.Office.Interop.Excel 的引用时,Visual Studio 会将其添加到项目文件中:

<COMReference Include="Excel">
<Guid>{00020813-0000-0000-C000-000000000046}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>5</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
</COMReference>

团队中的另一位开发人员遇到错误,需要向项目中添加一个名为 Interop.Excel.dll 的 DLL 文件,该文件将项目文件中的上述代码替换为:

<Reference Include="Interop.Excel, Version=1.5.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>My Project\Interop.Excel.dll</HintPath>
</Reference>

这在我的计算机上有效。

您能否解释一下这两种方法之间的差异,哪种方法最好,以及如何让第一种方法在其他计算机上工作?

最佳答案

我也不认为你的方法有问题。

通常,当您添加对组件的引用时,VS 会自动为 COM 组件生成互操作程序集。但是,当您添加对其中一个 Office 组件(XP 或任何更高版本)的引用时,将添加对 Microsoft 预生成(和优化的)主互操作程序集的引用,如第一个示例中所示。该行

<WrapperTool>primary</WrapperTool>

表示使用了该PIA。

如果您正确添加了 PIA 引用,则该引用的 CopyLocal 属性应设置为 false,而 Path 属性应类似于

C:\WINDOWS\assembly\GAC\Microsoft.Office.Interop.Excel\12.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll

您可以在此 MSDN article 中找到有关互操作程序集的更多详细信息。 .

要使第一种方法发挥作用,必须在计算机上安装 Office 主互操作程序集 (PIA)。 Microsoft 提供了一个可再发行版本:

据我所知,只有在安装了 .NET Framework 后,Office 安装程序才会安装这些 PIA,这就是为什么有一个单独的 PIA 可再发行组件。

注意:请确保引用您所定位的 Office 版本。但是,当针对多个版本的 Office 时,您可能会遇到一些问题。这种情况下的解决方案可能是后期绑定(bind)(如果性能不是问题)。

关于vb.net - 两台不同计算机上的不同互操作引用不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/224181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com