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创建一个外接程序。

    正式地说,Office的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
    ”。

    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,而您没有