- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
它可能只是在这里遗漏了一些东西,但是,当我为 Excel 互操作编写一些代码时,事情就是这样。
最佳答案
实际需要 PIA 并不常见。如果您在公共(public)类之一中公开 Excel 类型库中的任何互操作类型,则必须拥有一个。当其他代码使用您的类并且不使用相同的互操作库时,这会出错。只有当它们来自同一个程序集时,.NET 中的类型才相同。您会收到难以解释的错误消息,例如“无法将应用程序转换为应用程序”。 PIA 确保每个人都使用相同的类型。只要每个人都使用相同的PIA版本,这本身就是一个难题。如果可以避免这种情况,那么将您自己的互操作 DLL 与您的应用程序一起部署是可以的。在大多数情况下这并不难。
这个问题在 .NET 4.0 中通过称为“类型等效”的功能得到了解决。它特定于 COM 接口(interface)类型,当它们具有相同的 [Guid] 和相同的声明时,CLR 认为它们是兼容的,无论哪个程序集包含它们。然后通过“嵌入互操作类型”功能(与“无 pia”相同)利用这一点,编译器将互操作类型嵌入到程序集的元数据中。只有你实际使用的那些。
因此,您不必再发布互操作库,也不需要 PIA。而且它要小得多,因为您只需为实际使用的类型付费。物超所值,强烈推荐。
关于.net - .net 4's new no pia feature [deploying PIA' s 的优势是什么],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4410414/
它可能只是在这里遗漏了一些东西,但是,当我为 Excel 互操作编写一些代码时,事情就是这样。 我添加了对 Excel Com 库的引用。 VS 创建一个 PIA - Microsoft.Office
在 .NET 远程处理中使用 PIA 有什么好处?我在一次采访中被问到这个问题,我的回答是关于 COM 对象的,但有人坚持认为它在使用 .NET 远程处理时在连接方面有好处,我搜索了网络,但我找不到
我构建了一个应用程序,它使用 COM Interop 生成 Excel。它在我和我们用户的计算机上运行良好:Office 2007、Windows XP SP2。现在我将其迁移到另一台机器上,Offi
首先,我的问题与 Is Office 2007 PIA deployment possible without Office 2007? 我还没有打算使用 PIA。理想情况下,IT 工程师希望在升级
我目前正在调查 TFS 2012 自动构建/构建代理 我的情况是: 构建 Office 2007 插件的遗留解决方案 测试构建 Controller 两个测试构建代理,一个在 Windows 7 和
我正在使用 Office 2007 PIA 并尝试从 x 个用户选择的文档中生成一个大文档。大多数这些文档可能是 word 文档,但我们希望支持任何文件类型。 文本文档在使用 InsertFile.
我有一个 C# 程序,它做了一些 Word 和 Excel 自动化,它使用了 Office 2003 Primary Interop Assemblies。我部署它的方式是将 Interops 包含在
我已经成功完成了与 MS Word 集成的 Windows 窗体应用程序 - 该应用程序写入 Word 模板中的合并字段。我使用 MS Word 2007 制作了该模板,但以兼容模式将其保存为 97-
我正在使用 FSharp 的 Microsoft Office PIA。当我尝试像这样从 Microsoft Word 获取 SynonymInfo 时: #r "Office.dll" #r "Mi
我目前正在开发一个 C# 项目,需要访问 Outlook。开发是在两台不同的机器上完成的,其中一台安装了 Office,另一台没有安装。我previously询问如何针对 Outlook com 对象
我正在使用 FSharp 的 Microsoft Office PIA。当我尝试像这样从 Microsoft Word 获取 SynonymInfo 时: #r "Office.dll" #r "Mi
我正在使用 Office PIA 将应用程序集成到 Word 中。 有多个 word 文档,当您打开它们时会运行一个宏。我的目标是锁定当前文档,但在宏运行之后。有没有办法做到这一点?认为这样的事情应该
我无法访问 .Count 的 Sheets 属性。我正在使用 Excel 互操作。我处于 Debug模式,我正在尝试这个: ?xlSheets.Count 这导致: (1) : error BC304
我正在为 Office 2010 创建插件,需要在安装时检测是否安装了 Office 2010 PIA。 我已经在 2003 年和 2007 年这样做了,但是找不到 2010 年的组件 ID 有谁知道
我看到了一些关于 Office 2007 PIAs 的其他问题。 , 特别是: Can you install Office 2007 PIA's without office? (3) Is Off
编辑: 看起来 Jon Skeet 有一些类似的问题:How does the C# compiler detect COM types? 如何获取主互操作程序集中给定接口(interface)的 C
我目前正在尝试在使用 Microsoft.Office.Interop dll 的 TeamCity 上构建。由于我安装了 Office,这将在本地构建并正常工作,但是当尝试在 TeamCity 上构
Office 2007 PIA 是否也需要安装 Office 2007? 我可以使用 VSTO 3.0 部署 Office 2007 PIA(不安装 Office 2007)吗? 编辑:我有一个生成
我的开发机器上有 Office 2007。我正在为带有 Office 2003 的客户服务器构建一个小型应用程序,该应用程序需要进行一些互操作。我的程序将在夜间批处理中作为计划任务运行。 无论我做什么
我一直在使用 Office 2007 PIA 在我的 C# 应用程序中运行 PowerPoint 文件。 我知道这需要在机器上安装 Office 2007。 我想知道,可以用 OpenOffice.o
我是一名优秀的程序员,十分优秀!