如何检查是否安装了 .net for excel 互操作性

2023-12-28

我在代码中使用 .net Primary Interoperability Assembly for Excel。 但是,该应用程序可以在未安装 .net PIA for Excel 的计算机上运行。 我想如果没有安装就给出错误信息

即使我正在检查 GAC,以查看 PIA 是否已安装,并且仅当它存在时,我才使用 Microsoft.Office.Interop.Excel 相关代码。我收到错误。

我的问题是 - 我收到错误 - 未处理的异常 - 找不到无法加载文件或程序集 Microsoft.Office.Interop.Excel

有什么解决办法吗?

提前致谢!


我已使用此构建块在 5 月 NHunspell 包装器中加载 hunspell 的 x86 / x64 版本。也许这是您自己的动态加载器的一个很好的起点:

            // Initialze the dynamic marshall Infrastructure to call the 32Bit (x86) or the 64Bit (x64) Dll respectively 
            SYSTEM_INFO info = new SYSTEM_INFO();
            GetSystemInfo( ref info );

            // Load the correct DLL according to the processor architecture
            switch( info.wProcessorArchitecture )
            {
                case PROCESSOR_ARCHITECTURE.Intel:
                    string pathx86 = AppDomain.CurrentDomain.BaseDirectory;
                    if (!pathx86.EndsWith("\\"))
                        pathx86 += "\\";
                    pathx86 +=  Resources.HunspellX86DllName;

                    dllHandle = LoadLibrary(pathx86);
                    if (dllHandle == IntPtr.Zero)
                        throw new DllNotFoundException(string.Format(Resources.HunspellX86DllNotFoundMessage, pathx86));
                    break;

                case PROCESSOR_ARCHITECTURE.Amd64:
                    string pathx64 = AppDomain.CurrentDomain.BaseDirectory;
                    if (!pathx64.EndsWith("\\"))
                        pathx64 += "\\";
                    pathx64 += Resources.HunspellX64DllName;

                    dllHandle = LoadLibrary(pathx64);
                    if (dllHandle == IntPtr.Zero)
                        throw new DllNotFoundException(string.Format(Resources.HunspellX64DllNotFoundMessage, pathx64));
                    break;

看看这个委托声明:

internal delegate bool HunspellSpellDelegate(IntPtr handle, [MarshalAs(UnmanagedType.LPWStr)] string word);

以及如何将库函数绑定到它

HunspellSpell = (HunspellSpellDelegate)GetDelegate("HunspellSpell", typeof(HunspellSpellDelegate));

我认为这也应该适合您,但您必须声明完整的互操作代码。您可以查看 Nhunspell 代码来获取该技术的工作示例:

NHunspell 网站 http://nhunspell.sourceforge.net

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

如何检查是否安装了 .net for excel 互操作性 的相关文章

  • 在.rdlc报告的底部设置一个文本框

    我在 rdlc 报告中使用 tablix 有一个文本框 其中包含文本 签名 我想将此文本框放置在报告最后一页的底部 就在页脚之前 我已经用谷歌搜索了这个解决方案 但没有找到满意的结果 我的环境是VS2010 framework 4 0 有什
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • 有没有办法禁用 .NET 标签的“双击复制”功能?

    这真的很烦人 我使用标签作为列表项用户控件的一部分 用户可以单击它来选择列表项 然后双击它来重命名它 但是 如果剪贴板中有名称 双击标签会将其替换为标签文本 我还检查了应用程序中的其他标签 双击它们也会将其复制到剪贴板 我没有在这个程序中编
  • 变量替换为字符串

    我可以做类似的事情吗 s said s blah name blah 在 VB NET 中 写字越来越痛苦name said blah blah 在VB NET 14 对于VS2015 中 您可以使用字符串插值 https msdn mic
  • 有没有办法将消息从 C#.NET 程序集(ActiveX)发送到 VB6 应用程序?

    本问答参考并可用于以下用途 目的 通过ActiveX dll从IE浏览器发送消息到vb6应用程序 从 ActiveX dll 向 vb6 应用程序发送消息 从 C net dll 发送消息到 vb6 应用程序 我读过了本文 http www
  • ThreadPool.SetMinThreads 不创建任何新线程

    我想弄清楚到底有什么影响ThreadPool SetMinThreads makes 根据官方文档 https learn microsoft com en us dotnet api system threading threadpool
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • DataTable.GetChanges() 不断返回 NULL

    我正在尝试获取存在于的所有行allData但不在removeData public static DataTable RemoveDuplicateRows DataTable allData DataTable removeData re
  • WCF服务健康状况监控

    我刚刚实现了 WCF 服务 目前正在研究服务监控选项 我们的服务器团队目前仅托管 java 服务 希望我们的实例始终运行 因此它可以在该实例的生命周期内收集数据 他们表示将使用我们的 webmon 操作之一来获取统计信息 但我们正在使用每次
  • 使用 Amazon SQS 的 .net 应用程序示例

    我正在寻找一个示例 Net 应用程序 该应用程序会持续检查 Amazon SQS 是否有新消息 并在发现新消息时执行一项操作并将其从队列中删除 我的目标是让一个在 EC2 上运行的应用程序监视我的 SQS 队列中的新消息 当找到一条消息时
  • MongoDb 注册类映射

    我有以下代码 我希望 MiscellaneousData 覆盖抽象的 MiscellaneousDataBase 然而 IdMemberMap 总是出现空值 使用独立的 正常 类是可行的 if BsonClassMap IsClassMap
  • Powershell - 在不安装 Excel 的情况下将 CSV 转换为 XLS

    我有一台自动生成报告的服务器 报告采用 CSV 格式 我需要能够直接加密文件 无需第三方压缩 无 WinZIP 或 WinRAR 我认为最好的想法是将 CSV 转换为 XLS 然后通过 Powershell 密码保护 XLS 文件 不幸的是
  • 如何将 Razor 视图转换为字符串?

    我想使用我的 Razor 视图作为某种发送电子邮件的模板 所以我想将我的模板 保存 在视图中 将其作为字符串读入控制器 进行一些必要的替换 然后发送它 我有有效的解决方案 我的模板作为 HTML 页面托管在某处 但我想将其放入我的应用程序中
  • 在 C# 中将 ANSI (Windows 1252) 转换为 UTF8

    I ve 之前问过这个 https stackoverflow com q 4351985 398713之前在 Stack Overflow 上以一种迂回的方式 这次想把它做好 如何将 ANSI 代码页 1252 转换为 UTF 8 同时保
  • 使用 XML 的 WCF 请求验证

    我有一个WCF使用 Net 4 0框架的SOAP Web服务 我在用contract first方法 即 服务代码是使用 WCSF Blue 工具从手写 WSDL 生成的 我对请求消息有以下要求 如果价格小于 100 则不得有税项 但如果大
  • 如何使用 .NET 以编程方式沙箱进程

    我计划设计一个系统 本质上允许用户在我的机器上运行 PHP Ruby 等脚本代码 我想将它们放入沙箱中 以防止它们访问机器的关键方面 哪些 NET API 可用于此目的 我计划从主流程创建一个子流程 并希望以编程方式从主流程中沙箱该子流程
  • WPF 如何从 DataTemplate 访问控件

    我有一个包含网格的数据模板 网格内有一个组合框
  • 使用远程管理凭据将文件复制到远程计算机

    我正在使用 C 我需要能够将一组文件复制到大约 500 台不同的计算机上 我已成功地使用 LogonUser 方法来模拟具有复制文件所需权限的域帐户 文件的目标路径类似于 远程计算机 C SomeFolder 我的问题是 有没有办法做到这一
  • C#动态支持吗?

    看完之后这个帖子 https stackoverflow com questions 2674906 when should one use dynamic keyword in c sharp 4 0k和链接 我还有 2 个问题 问题 1
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解

随机推荐

  • 创建 ASP.Net 处理程序以将图像作为字节返回

    我正在考虑创建一个处理程序来根据传递的 id 返回图像 我之前没有创建过自己的处理程序 当我创建它时 它提到它必须在 IIS 中注册 这个项目分发给很多客户 我是否必须更改每个客户的 IIS 或者是否有某种方法可以解决这个问题 或者有处理程
  • 将 NHibernate 应用程序转换为多租户的最佳实践?

    我有一个简单的 ASP NET MVC OpenID NHibernate应用程序 在 MSSQL Server DB 之上 该应用程序是严格的单租户 仅支持具有 2 个角色的多个用户 Admin and User 我想将此应用程序转换为多
  • Windows 10 LLDB 错误:无法将断点解析到任何实际位置

    我使用的是 Windows 10 使用 MSVC 16 编译了 llvm 11 这是main cpp include
  • EF4 和连接字符串

    我有一个 3 层项目 1 项目 数据 EDMX文件 2 项目 模型 POCO的 3 Project Console 控制台应用程序 我已将连接字符串添加到Project Console
  • 如何使用 Tokio 远程关闭正在运行的任务

    我有一个正在接收数据的 UDP 套接字 pub async fn start gt Result lt std io Error gt loop let mut data vec 0 1024 socket recv from mut da
  • 2022年如何应对后台地理围栏?

    情况如下 当用户创建地理围栏时 我将其保存到后端并向操作系统注册地理围栏 但是每当我的应用程序重新启动时 我都会从后端获取地理围栏并再次在操作系统中重新注册它们 因为它们不断消失 我有两节课MainActivity and FormActi
  • 当 EB 环境为 python 3.6 时,使用 python 2.7 安装需求时出现 AWS 错误

    如何让 AWS EB 实例使用实例上已安装的 python 3 版本 我无法获得运行 Python 3 6 并运行 Django 2 1 的新环境 本地 不在虚拟环境中 which python gt usr local bin pytho
  • cucumber-testng 4.0 并行执行默认为 10 始终

    这是我的酷跑者 我试图通过重写 dataprovider 方法来使用 cucumber jvm 4 0 0 中内置的并行性 我看到我的场景是并行调用的 但线程数始终默认为 10 我尝试使用 threads 选项作为状态执行GitHub ht
  • 如何通过 SSH 连接到 Mac 容器中的 Docker [重复]

    这个问题在这里已经有答案了 我正在运行 Mac 版 Docker 版本 1 12 0 rc2 beta16 内部版本 9493 我已从本地存储库中提取了一个映像 并使用 docker run d 创建了一个容器 使用 docker ps 我
  • OllyDbg 中的左下窗格显示什么?

    我使用 NASM 组装了以下代码 global start section data var1 DD 0xA1A2A3A4 4 bytes var2 DD 0xB1B2B3B4 4 bytes section bss var3 RESD 1
  • 使用Officer 除了Word docx 之外还创建pdf

    我在循环中使用官员 过去使用记者 来创建 150 个独特的文档 然而 我需要将这些文档从 R 导出为 word docx 和 pdf 有没有办法将用officer创建的文档导出为pdf 这是可能的 但我的解决方案取决于 libreoffic
  • 使用 Alamofire/Codable 解析 JSON 行

    是否可以使用 Alamofire 和 codable 解析 JSON 行 这是我现在的代码 Alamofire request url method get parameters parameters encoding URLEncodin
  • 无法将属性“溢出”设置为 null

    webView getSettings setJavaScriptEnabled true webView加载这个html代码
  • 自动向下滚动聊天div

    我有这个代码 用于加载聊天 function getMessages letter var div messages get msg show php function data div html data setInterval getM
  • C++ 跨平台高分辨率定时器

    我正在寻找用 C 实现一个简单的计时器机制 该代码应该可以在 Windows 和 Linux 中运行 分辨率应尽可能精确 至少毫秒精度 这将用于简单地跟踪时间的流逝 而不是实现任何类型的事件驱动设计 实现这一目标的最佳工具是什么 更新了一个
  • 一个简单的java多线程

    嗯 我遇到了一个奇怪的问题 public class Test private boolean state new boolean false false public void createThread Thread th1 new Th
  • ng build -prod 与 ng build --prod --build-optimizer=true

    我的 Angular 项目是 Angular4 3 3 ng 构建产品 构建需要 77 秒 ng build prod build optimizer true 构建需要 190 秒 没有供应商块 大小更小 但大小差异不大 Chunk di
  • Angular2 - ContentChild 查询找不到嵌套组件

    我正在尝试设置一个 Angular2 组件 该组件自动聚焦通过内容投影插入的输入元素 我使用的解决方案基于这个答案 https stackoverflow com a 34503163 1592971 我还有一个额外要求 即输入元素可以嵌套
  • 如何检查服务器是否发送垃圾邮件?

    我今天检查了我的 IP 地址 因为我收到了退回的电子邮件 并且我发现它已被列入一些列表的黑名单 我只使用我的网站发送客户电子邮件 不发送时事通讯电子邮件 所以我不会发送很多电子邮件 我不知道为什么我的专用IP地址会被列入黑名单 有没有办法检
  • 如何检查是否安装了 .net for excel 互操作性

    我在代码中使用 net Primary Interoperability Assembly for Excel 但是 该应用程序可以在未安装 net PIA for Excel 的计算机上运行 我想如果没有安装就给出错误信息 即使我正在检查