Visual studio 2013 我仍然可以在Office 2013中使用Microsoft.Office.Interop程序集吗?

Visual studio 2013 我仍然可以在Office 2013中使用Microsoft.Office.Interop程序集吗?,visual-studio-2013,office-interop,office-2013,Visual Studio 2013,Office Interop,Office 2013,我不得不将一个较旧的项目(在.NET2中)导入到VisualStudio2013中,它利用了Microsoft主互操作程序集 VisualStudio说我需要添加对该项目的引用。现在我去看了一些书,显然微软只发布了office 2010的PIA?(我有2013年的办公室) 现在我想知道的是 我可以让它与office 2013配合使用并向后兼容吗 如果是这样的话,这是未来的一条好路线吗?它会兼容吗?因为我知道你需要.Net 2(最新版本),Windows 8附带4.5而不是3(默认版本),而且大多

我不得不将一个较旧的项目(在.NET2中)导入到VisualStudio2013中,它利用了Microsoft主互操作程序集

VisualStudio说我需要添加对该项目的引用。现在我去看了一些书,显然微软只发布了office 2010的PIA?(我有2013年的办公室)

现在我想知道的是

  • 我可以让它与office 2013配合使用并向后兼容吗
  • 如果是这样的话,这是未来的一条好路线吗?它会兼容吗?因为我知道你需要
    .Net 2
    (最新版本),Windows 8附带4.5而不是3(默认版本),而且大多数新电脑都将配备Office 2012或2013

  • 正式来说,办公室的PIA并没有向后兼容性。事实上,它是有效的

    出于向后兼容性的原因,我从几年前就开始为Office XP使用PIA,它在Office XP、2003、2007和2010(尚未在2013年进行测试)以及Windows XP、Vista 7和8上运行良好

    为了与不同版本的Windows兼容,我使用的是.NETFramework 3.5


    为了未来。。。这取决于你对PIA做了什么。如果可能的话,最好直接处理打开的XML文件或为word/excel创建外接程序。

    PIA是一个历史工件,只有旧的.NET版本(v4之前)才需要。它们已经被“嵌入互操作类型”特性(也称为“无PIA”特性)彻底而优雅地取代。自Visual Studio 2010以来一直受支持,当您选择引用程序集时,您将在“属性”窗口中找到它。它默认为
    True
    。介绍底层技术的好视频是

    这就是为什么Microsoft没有发布Office 2013的PIA,他们希望您嵌入互操作类型

    该功能非常理想,它避免了您的客户必须在其机器上安装PIA,并且您可以将其包含在安装程序中。在双方都不关心的情况下解决问题,这是一个非常常见的灾难。此外,Office的PIA非常大,嵌入互操作类型的最大优点是程序集只包含实际使用的类型。许多兆字节减少到几千字节

    工作流程有点不同。您现在使用的不是添加引用对话框.NET Framework选项卡中提供的对Microsoft.Office.Interop程序集的引用,而是COM选项卡。然后选择,比如“
    MicrosoftExcel15.0对象库”
    ,为使用Excel的程序生成互操作类型。如果加载以前使用过PIA的旧项目,则只需删除这些引用程序集并从COM选项卡中重新添加它们

    请注意,一个特性丢失了,故意将目标锁定在旧版本的Office上,而实际上您的开发人员机器上并没有安装它,这将更加困难。如果这是一个要求,那么您仍然需要该版本的PIA,在属性窗口中强制嵌入互操作类型为True。实际上这样做是有问题的,微软很难让新的Office版本与旧版本完全兼容。他们已经坚持了15年,但它已经失去了动力。最坏的情况是针对比您在计算机上安装的版本更新的版本,这很容易使您的程序崩溃,出现非常难以诊断的异常,如
    AccessViolationException


    请注意,您必须对代码进行一些小的修改,以使其能够工作。合成的“
    XxxxClass
    ”类不是嵌入的,只是“
    Xxxx
    ”接口。只需从新语句中删除单词“
    Class
    ”。

    此外,如果您现在不知道,Windows 8确实有较旧版本的.NET Framework,但默认情况下未安装它们。转到Program Features-->Add Features to Windows-->,第一个复选框应该是.NET 3.0,可能是2.0。注意,如果您在WSUS服务器上,则需要告诉Windows从Windows Update服务器获取文件。希望有帮助

    我刚刚发现Visual Studio 2013 express不再支持office。所以你至少需要专业版才能让它工作

    VS 2015 Office 365社区-无论出于何种原因,从COM对象添加都无法工作。解决方案是进入GAC并找到互操作程序集,将它们复制到临时目录,然后像任何DLL一样添加到您的项目中。

    我遇到了同样的问题,我得到了一个解决方案:嘿。。。我正在创建MS Word reporting。我是否已将OpenXML格式用于Microsoft.Office.Interop.Word的现代版MS Word?你能澄清一下吗?谢谢我对这个答案的唯一反对意见是,Office 2013的PIA仍然是发布的-例如,如果您安装了VS2013,您将在C:\Program Files(x86)\Microsoft Visual Studio 12.0\Visual Studio Tools for Office\PIA\Office15中找到它们,这只是历史的一部分。如果您使用ildasm.exe仔细查看它们,您将看到它们的目标是.NET 2.0.50727。类型嵌入需要.NET4。它们之所以存在,是因为VSTO仍然支持针对早期.NET版本。部署它们完全是您的工作,客户无法帮助。如果我使用新的参考(来自COM),它是否可以在安装了office 2007的计算机上工作(我的安装了office 2016)我们是否可以在不使用PIA的情况下开发office 2013插件?我使用的是Visual Studio 2015社区版。它也没有办公室支持。然而,对于VS 2015,可以从下面的文章中下载:OpenXML不是替代品!这份文件太可惜了。示例代码不可能找到。(尝试在OpenXML中获取单元格的背景色!祝您玩得开心!)但主要是OpenXML不是解决方案,因为没有执行任何公式。所以