主互操作程序集(PIA)是否要求在计算机中安装Microsoft Office才能工作

Mid*_*ali 4 c# interop com-interop visual-studio-2010 office-interop

主互操作程序集(PIA)是否要求在计算机上安装Microsoft Office才能运行?

我经历了这么多令人困惑的帖子/网站,无法得出结论.

我有一台未安装办公室的机器,我正在使用VS2010.由于Microsoft.Office.Interop.Excel程序集在COM部分中不可用于referance.我通过思想.Net部分在referances中添加它.仍然会引发以下错误.

由于以下错误,检索具有CLSID的组件的COM类工厂失败:80040154未注册类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))

这是Mircosoft网站上的声明,最终用户计算机上不需要Office PIA来运行Office解决方案.这究竟是什么意思?

这是否意味着没有Office安装我们可以使用互操作程序集?

如果不是为什么我们需要PIA来安装办公室以使工作正常?

Mar*_*age 6

主互操作程序集(PIA)是否要求在计算机上安装Microsoft Office才能运行?

是.

PIA只是允许您从.NET调用Office COM对象模型的程序集.由Office应用程序托管的COM对象仍然需要存在才能使其正常工作.您获得的类未注册错误是因为计算机上缺少COM对象.要解决此问题,您需要安装Office应用程序旨在使用的Office版本.

  • PIA在过去的5年里已经过时了.优雅地取代了自.NET 4.0和VS2010以来的Embed Interop Types功能.Office 2013不再有PIA,他们不会再回来了. (3认同)

小智 5

这是Mircosoft网站上的声明,最终用户计算机上不需要Office PIA即可运行Office解决方案。这到底是什么意思?

那不是我找到的当前报价。我发现的是:

还必须在最终用户计算机上安装PIA,以运行针对.NET Framework 3.5的Office解决方案。但是,最终用户计算机上不需要Office PIA即可运行针对.NET Framework 4的Office解决方案。有关更多信息,请参见设计和创建Office解决方案。(https://msdn.microsoft.com/zh-cn/library/vstudio/hy7c6z9k(v=vs.100).aspx

这意味着(对于net 4+),当您在VS usint PIA中创建Office解决方案时,无需在目标计算机上安装这些PIA即可运行该解决方案。(原因是,如果您以Net4为目标,则如果项目中每个Office PIA引用的Embed Interop Types属性设置为True(这是默认值),则由...使用的PIA类型的类型信息您的解决方案将在构建项目时嵌入到解决方案程序集中。在运行时,将使用嵌入的类型信息(而不是PIA)来调用Office应用程序的基于COM的对象模型。进入您的解决方案(https://msdn.microsoft.com/zh-cn/library/vstudio/3295w01c(v=vs.100).aspx

例如:我想用VB编写程序以在XLSX工作表上执行doSomething。

我必须在开发计算机上安装Excel,PIA和VS,否则我将无法编写它。

该程序完成后,我希望会计中的Bob可以运行它。因此,我发布了程序,并将其安装在Bob的计算机上。Bob不需要在本地计算机上安装PIA即可运行该程序。他需要办公室。

这是否意味着无需安装Office就可以使用互操作程序集?

另一种方式。这意味着,对于使用PIA(EIT)的Net 4+应用程序,您的应用程序可以在客户端计算机上未安装PIA的情况下运行(所需的部分将成为您部署的一部分)。