Microsoft Office 互操作程序集参考

2023-11-24

我有一个在 Visual Studio 2005 中开发的应用程序,我正在使用 ClickOnce 进行部署。我的解决方案包含两个项目 - 用 VB 编码的用户界面层和用 C# 编码的类库。我的 C# 类库有一些使用 Outlook 和 Excel 互操作程序集(Microsoft.Office.Interop.Outlook 和 Microsoft.Office.Interop.Excel,均为版本 11)的代码。这是我的问题。

  1. 尽管我没有找到绝对的说法,但我的理解是,您必须拥有适当版本的 Office 应用程序 (Outlook/Excel) 才能安装使用 Interop 程序集的应用程序。它是否正确?

如果 (1. = 是) 那么

如果您的应用程序仅将 Interop 程序集用于少数几个功能,而这些功能仅由总用户群中的少数人使用,您将如何处理这种情况?如果只有部分用户需要使用这些功能,为什么我必须要求应用程序的每个用户安装 Microsoft Office?这些互操作程序集只是.dll文件,那么是什么让它们与其他文件如此不同,因为无论客户端安装什么软件,您都不能只将文件与您的项目一起发布并满足引用? (显然,我对 GAC 及其对 Visual Studio 行为的影响了解甚少。)我很乐意编写自己的代码来检查是否存在使用 Office 软件的少数功能所需的 Office 软件。没有 Office,无法使用功能...

Else

如果我对此的理解不正确,那么如何设置我的引用和 ClickOnce 设置,以便用户在尝试安装时不会遇到以下错误?

“无法安装或运行该应用程序。该应用程序要求首先将程序集办公室版本 11.0.0.0 安装在全局程序集缓存 (GAC) 中。

请联系您的系统管理员。”

  • 我尝试将 Interop 引用 CopyLocal 属性设置为 True 和 False。
  • 在我的 ClickOnce 应用程序文件列表中,我尝试将这些程序集设置为“包含”、“排除”和“先决条件”。
  • 在我的研究中,我发现有些人的这些引用指向 *C:\WINDOWS\ assembly\GAC*,我的则指向 *C:\Program Files\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11*但我还没有找到改变参考路径的方法。根据http://msdn.microsoft.com/en-us/library/ez524kew(VS.80).aspx您无法添加 GAC 的推荐信,那么其他人是如何管理的呢?
  • 我尝试将 *C:\Program Files\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11* 中的引用复制到我的项目目录并在那里引用它们。

End If

我想我需要知道的主要事情是如何/是否可以将这些程序集包含在我的出版物中并满足或绕过 GAC 要求。

如果可能,请尝试尽可能直接回答我的具体问题。虽然文章很有帮助,但我已经阅读了很多文章并尝试了很多建议的解决方案,但没有成功。请记住,我对这一切从一开始就如何运作的逻辑缺乏了解。

请原谅我的不理解,并感谢您提供的任何帮助。非常感谢!


您可能想看看 NetOffice 项目:http://netoffice.codeplex.com/.

它是一套免费(MIT 许可证)且完整(所有版本 2000-2010 和所有 Office 应用程序)的独立于版本的互操作程序集。这些程序集是使用工具从实际的 PIA 生成的,因此它们是正确、完整和最新的,并且可能会针对未来版本快速更新。

另一个不错的功能是每个成员的 IntelliSense 显示哪些 Office 版本实现了该成员。

对于部署,您可以使用应用程序复制或安装程序集。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Microsoft Office 互操作程序集参考 的相关文章

  • 标准 VBA 函数“找不到项目或库”

    因此 我必须在我的 PC 上运行别人的 Excel 应用程序 并且在标准函数 如日期 格式 十六进制 中间等 上收到 找不到项目或库 的信息 一些研究表明 如果我在这些函数前加上 VBA 前缀 如 VBA Date 中那样 它会正常工作 网
  • 我需要代码在两行之间复制并粘贴到另一张表中,并给出任何值?

    例如 我有 50 行数据 第一行有学生的名字 我需要代码将数据从 RAM 复制到 RAMESH 在这之间我有 20 行 我需要代码来复制行并将其粘贴到另一张纸中 它不应该问我名字 默认情况下 它必须采用 RAM 和 RAMESH 名称 好的
  • 使用 VBA 通过简单命令从非连续范围的并集获取值到数组中(无循环)

    我有以下任务 表面上很简单 使用 VBA 将电子表格上多个列的值复制到二维数组中 为了让生活更有趣 这些柱子并不相邻 但它们的长度都相同 显然 可以通过依次循环每个元素来做到这一点 但这看起来非常不优雅 我希望有一个更紧凑的解决方案 但我很
  • Excel VBA 导出到文本文件。需要删除空行

    我有一个工作簿 使用以下脚本将其导出到文本文件 它工作正常 但是当我打开文本文件时 末尾总是有一个空行 这导致我在生成此文本文件后运行的另一个脚本出现问题 有关如何从导出中删除空行的任何帮助 Code Sub Rectangle1 Clic
  • 如何在不滚动的情况下截取整个电子邮件正文?

    我正在使用 OL2010 想要制作整个电子邮件的屏幕截图 不仅仅是 屏幕 可以用VBA或者外部程序来完成吗 有一个类似的问题 https stackoverflow com questions 4176340关于如何使用 C 实现这一点 注
  • 如何使用 VBA 将 mm/dd/yyyy 更改为 dd/mm/yyyy

    我在使用 VBA 将 mm dd yyyy 转换为 dd mm yyyy 日期格式时遇到问题 我有一个这样的表 仅供参考 该表是从报告工具自动生成的 字符串操作 或任何 Excel 函数可以提供帮助吗 希望知道如何解决这个问题的人可以给我一
  • 字典、集合和数组的比较

    我正在尝试找出字典与集合和数组相比的相对优点和功能 我发现了一篇很棒的文章here http www experts exchange com articles 3391 Using the Dictionary Class in VBA
  • 使用 Apache POI Excel 写入特定单元格位置

    如果我有一个未排序的参数 x y z 列表 是否有一种简单的方法将它们写入使用 POI 创建的 Excel 文档中的特定单元格 就好像前两个参数是 X 和Y 坐标 例如 我有如下行 10 4 100 是否可以在第 10 行第 4 列的单元格
  • C# Outlook 从收件人获取 CompanyName 属性

    我目前正在使用 C 编写 Outlook 2010 AddIn 我想要的是从我从 AppointmentItem 中提取的 Recipient 对象中获取 CompanyName 属性 因此 有了 AppointmentItem 的收件人
  • Pandas 0.22.0:IndexError:读取 xls 时列表索引超出范围

    我正在尝试将 282Mb 65536 行 x 138 列 xls 文件加载到 pandas 数据框中 import pandas as pd import os filename r invoicing xls dir os path di
  • 读取R中打开的Excel文件

    有没有办法将打开的Excel文件读入R 当Excel中打开一个excel文件时 Excel会对文件加锁 比如R中的read方法无法访问该文件 你能绕过这个锁吗 Thanks 编辑 这发生在带有原始 Excel 的 Windows 下 发生错
  • 将匹配的行复制到另一张纸中

    我有两张表 sheet1 和sheet 2 我正在查看工作表 1 的 T 列 如果工作表 2 中 T 包含 1 则粘贴完整行 该代码运行良好 但它将sheet2 中的结果粘贴到sheet1 的同一行中 这会导致行之间出现空白 任何人都可以建
  • SpreadsheetML 文件扩展名被 IE 和 FF 更改 - 内容类型错误?

    我正在 PHP 中生成 SpreadsheetML 文件 当用户下载文件并保存时 默认情况下文件会另存为 Report xml 并在 Excel 中打开 但是 如果选择在 Excel 中打开文件而不是保存文件 则文件名将更改为 Report
  • Java Microsoft Excel API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • numpy NPV 和 Excel NPV 有区别吗?

    我的 Excel 中有一行包含 11 个值 TotalSavings 0 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 贴现率为 0 08 我在 Excel 中使用 计算 NPVNPV
  • Excel 工作表名称的有效字符

    在 Java 中 我们使用以下包以编程方式创建 Excel 文档 org apache poi hssf 如果您尝试设置工作表的名称 不是文件 而是内部 Excel 工作表 在以下情况下您将收到错误消息 名称超过 31 个字符 该名称包含以
  • 支持 >65k 行的 Excel VBA SQL 驱动程序

    在 Excel 2010 中通过 VBA 查询 Excel 数据时 我遇到一个有趣的问题 我正在使用这些驱动程序连接到 xls 或 xls x m 文件 Sub OpenCon ByRef theConn As Connection ByV
  • Excel 2010 在 IF 函数中搜索文本 - 单独的单元格数据

    Program Excel 2010 Require 一种将名字 姓氏 电子邮件提取到各个单元格的方法 Data 我的数据有一个包含原始 脏数据 的表 它是原始的并且一团糟 我用一个简单的方法整理它 IF A7 Order 1 然后其余单元
  • 将 Excel 文件读入 R 并锁定单元格

    我有一个 Excel 电子表格要读入 R 它受密码保护并锁定了单元格 我可以使用 excel link 导入受密码保护的文件 但我不知道如何解锁 取消保护单元格 excel link 给了我这个错误 gt
  • 双精度类型二维多维数组的 pinvoke 编组作为 c# 和 c++ 之间的输入和输出

    我有以下我正在尝试解决的双物质类型的 2d 多维数组的 c 和 c pinvoke 编组 我已经查看了以下热门内容以获得我目前拥有的内容使用双精度数组进行 P Invoke 在 C 和 C 之间编组数据 https stackoverflo

随机推荐

  • Android 网络库的比较:OkHTTP、Retrofit 和 Volley [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 一位正在学习 Android 的 iOS 开发人员提出的问题分为两部分 在iOS上我用过AF网络项目广泛 Android 有等效的库吗 我读过OkH
  • Firestore如何存储对文档的引用/如何检索它?

    我是 Firestore Firebase 的新手 我正在尝试创建一个新文档 其中一个字段是document reference到其他文档 我已阅读 Firebase 的所有指南和示例 但没有找到任何内容 另外 当我检索我创建的文档时 我将
  • 使用 webpack 2 和 vue-cli 加载本地字体

    我正在使用 vue cli webpack 模板 并尝试在我的项目中加载本地字体 我无法正确获取字体路径 我的道路应该是什么样子 我发现了一些关于我可能做错了什么的信息 但我无法弄清楚 https github com webpack co
  • 从 RGB 值数组中(就地)切片平面的算法

    我有一个字节 RGB 值的平面数组R1 G1 B1 R2 G2 B2 R3 G3 B3 Rn Gn Bn 所以我的数据看起来像 char imageData WIDTH HEIGHT 3 但我想将 WIDTH HEIGHT 数组传递给需要该
  • 带有类加载器的 Java 示例

    我有一个小问题 我学习java SE并找到类ClassLoader 我尝试在下面的代码中使用它 我正在尝试使用 URLClassLoader 在运行时动态加载类 URLClassLoader urlcl new URLClassLoader
  • 正则表达式选择引号之外的字符

    我想找到一个正则表达式来挑选出引号集之外的所有逗号 例如 foo gt bar foofoo gt bar bar 这将在第 1 行之后挑选出单个逗号 bar 我真的不关心单引号和双引号 有人有什么想法吗 我觉得预读应该可以做到这一点 但我
  • PHP 中 Skype 名称的正则表达式

    我想在 PHP 中使用正则表达式验证 Skype 名称 NOTE 它必须介于 6 32 个字符之间 以字母开头 并且仅包含字母和数字 不含空格或特殊字符 这个模式应该适合你 a zA Z a zA Z0 9 5 31 这将匹配一个前导字母
  • VBA 中作为类成员的类对象数组

    我正在用 VBA 编写一个 Excel 宏 向图书馆顾客发送电子邮件 提醒他们逾期的资料 数据来自电子表格 其中包含以下数据 UserID Name Email Title Author Barcode Call Number Borrow
  • 有没有办法使用 doxygen 记录 cuda 的“.cu”文件

    由于cuda的 cu 文件基本上是c 有没有办法我们可以使用doxygen为 cu 文件生成文档 我注意到 NVIDIA 使用 doxygen 来生成 cuda 的文档 但是 当我使用 doxygen 时 cu 文件将被忽略 如果其他人也遇
  • 对多个字段中的值进行计数

    我正在尝试计算一组具有多个字段的对象的不同值 e g 对象文章有很多标签对象字段 一篇文章有 标签 tag1 tag2 另一篇文章有 标签 tag2 tag3 我想找出一些可以返回以下内容的东西 标签1 1 标签2 2 标签3 1 我以为我
  • NUnit 与 Assert.AreEqual 不能很好地配合

    我对单元测试尤其是 NIt 很陌生 我只是从书中输入一些涉及 Java 和 JUnit 的示例 但我改用 C 问题是 我有一个带有重写方法的类 例如Equals and GetHashCode 但是当我尝试将此类的两个对象与Assert A
  • 为 Mac 安装 ext-zip

    我正在尝试跑步composer update我收到以下错误 Problem 1 The requested PHP extension ext zip is missing from your system Install or enabl
  • 如何阻止 R 加载包?

    我正在使用 R 中的多核包来并行化我的代码 但是 如果加载了 tcltk 包 则使用多核包分叉进程将导致 R 无限期挂起 所以我想阻止 tcltk 加载 如果任何包尝试将其作为依赖项加载 我希望立即出现错误 这可能吗 或者 我可以unloa
  • 为 jinja2 中未定义的属性引发异常

    我需要以下内容来引发异常 jinja2 Template Hello a x render a Jinja2 默默地返回一个空字符串a x 所以这呈现为 Hello 如何让 jinja2 对未定义的属性引发异常 from jinja2 im
  • 在 Javascript 中进行长时间运行的计算时如何避免冻结浏览器

    我有一个网页 其中函数中的 JavaScript 计算需要花费大量时间才能完成 并使页面冻结 当计算在后台进行时 我应该使用什么技术来确保 javascript 不会冻结浏览器 如果您只需要进行计算并且不需要在长时间运行的计算过程中访问 D
  • 如何在平面索引数组中复制值? (将所有元素按顺序追加到数组末尾)

    假设我有这段代码 x array a b c d e 有没有我可以在创建后调用的函数来复制值 所以在上面的示例中 x会成为 array a b c d e a b c d e 我想了类似下面的东西 但它不起作用 x x x x array
  • LINQ to Entities - 动态选择指定列

    我可以创建一个选择查询 仅检索 LINQ to 实体的特定列 代码中的静态 from Example in new Enities Table select new Example Column1 Example Column2 但我不知道
  • 在数据库中存储十六进制和十六进制字符的最佳数据类型

    我正在使用以太坊 API 我想将来自 api 的信息存储到 mysql 表中 地址数据如下所示 0x3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be 0x1d80982502f3bb75654df13aa32
  • Redis 复制和客户端输出缓冲区限制

    我遇到了 redis 复制问题 我无法弄清楚 Master 不断达到客户端输出缓冲区限制 主控配置 redis cli p 6380 config get client output buffer limit 1 client output
  • Microsoft Office 互操作程序集参考

    我有一个在 Visual Studio 2005 中开发的应用程序 我正在使用 ClickOnce 进行部署 我的解决方案包含两个项目 用 VB 编码的用户界面层和用 C 编码的类库 我的 C 类库有一些使用 Outlook 和 Excel