如何在另一个目录中分离托管和非托管 DLL

2024-01-29

我的发布文件夹是:

MyApp.exe
MyManagedDLL.dll
NativeDLL.dll

MyApp 使用托管 dll,它通过 pinvoke 调用本机 dll。 我尝试将它们移动到另一个子文件夹,并再次引用托管 dll,当我运行我的应用程序时,它说找不到 NativeDLL.dll。如何解决这个问题?


Windows 不知道它需要在子目录中查找 DLL。它只会在选定的几个位置查找 DLL,从包含 EXE 的文件夹开始。像这样给它一个艰难的时期它不是很有成效。但是您可以通过调用 SetDllDirectory() 来帮助它。请记住,您的用户不会关心 DLL 所在的位置。 IT 部门倾向于采用简单的解决方案,当应用程序本身改变 Windows 搜索路径时解决 DLL 加载问题从来都不是一件有趣的事情。

否则,这是允许 AnyCPU 可执行文件在 32 位和 64 位模式下运行的合理方法。你会用two目录,一个包含 32 位版本的 DLL,另一个包含 64 位版本。并根据 IntPtr.Size 的值相应地调用 SetDllDirectory。

[DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
static extern bool SetDllDirectory(string lpPathName);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在另一个目录中分离托管和非托管 DLL 的相关文章

  • 如何为 LINQ 查询构建动态 FROM 子句?

    我有一个标准 LINQ 查询 var list from x in SomeDataContext ViewName where Rest of where clause select x 我想知道是否可以构建动态 LINQ 查询 以便我可
  • C# 转换为小数

    如果有的话 有什么区别 decimal d decimal myDouble decimal d new decimal myDouble decimal d Convert ToDecimal myDouble 没有区别 如果你看一下源码
  • Api 控制器中长时间运行的任务(使用 Web API,自托管 OWIN)

    我想在自托管 OWIN 环境中的 ApiController 中运行长时间运行的任务 例如 4 5 分钟 但是 我想在开始该任务后 一旦开始长时间运行的任务 就发回响应 而不等待它完成 这个长时间运行的任务与 HTTP 无关 并且顺序运行一
  • 无法启动 Windows 服务,错误 1064

    我编写了一个在 Win10 上运行的 Windows 服务 它运行得非常好 直到我决定对其进行一些更改 我重写了一些逻辑 在调试和发布配置中进行了测试 一切都很好 然后 我使用卸载了当前版本的服务installutil exe u serv
  • Wix - 自定义安装目录

    我使用的是 Wix 3 x 用户应该能够选择目标目录 我的Setup wxs目前是这样的 http pastebin com uH1EjbDQ http pastebin com uH1EjbDQ 询问用户自定义目标目录的最简单方法是什么
  • 如果.Net Core可以在Windows上运行,为什么不能在.Net Framework中引用.Net Core DLL?

    我明白为什么 Net Framework 可能会在 Net Core IE 中导致问题 因为不存在特定于 Windows 平台的 API 但是为什么不能直接引用 Net Core 作为 Net Framework 中的库呢 如果 Net C
  • 在Windows 7上安装curl后缺少libcurl-4.dll

    按照这个人的安装curl后指示 https stackoverflow com a 28757477 1186038 除了第 2 步 已安装Win64 OpenSSL v1 0 1u 轻型相反 因为下载页面中缺少版本 k http slpr
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 在 .Net 中保持 Powershell 运行空间打开

    我正在尝试从 VB Net 中运行一些 PowerShell 代码 如果您知道的话 C 编码器也可能会有所帮助 代码的第一部分 我需要使用密码连接到 na 控制器 并且需要保持连接打开 我还有其他命令需要通过单击按钮来运行 获取文件 显示文
  • 添加 LINQ 的 LongCount 扩展方法是否有实际原因?

    LINQ 有 2 种计算可枚举数的方法 Count and LongCount 实际上 这两者之间的唯一区别是第一个返回一个int 而第二个返回一个long 我不清楚为什么添加第二种方法 它的唯一用例似乎是处理超过 2B 元素的枚举 对我来
  • .Net 中是否有与 HTML 等效的 XmlReader?

    我用过Html敏捷包 http html agility pack net z codeplex过去在 Net 中解析 HTML 但我不喜欢它只使用 DOM 模型 在大型文档和 或具有大量嵌套的文档上 可能会遇到堆栈溢出或内存不足异常 另外
  • 应用服务中的内存利用率是否可​​以提高

    我有一个相当简单的 Web 应用程序在 Azure 的 B1 服务计划中的应用服务计划中运行 该计划提供 1 个 CPU 和 1 75GB RAM CPU 使用率永远不会超过 5 左右 内存使用率永远不会低于 52 我确实停止了计划中唯一运
  • 如何在 sql server 中加密数据并在 .net 应用程序中解密

    我想加密 sql server 中的一些密码并让 c 应用程序解密它们 显然 我可以创建一个 SP 来解密所需的密码并将其传递给 c 应用程序 但这意味着通过网络发送明文密码 因此 我希望能够在 sql server 中加密我的密码 使用密
  • 删除 TableLayoutPanel 中的特定行

    我有 TableLayoutPanel 我以编程方式添加行 用户基本上选择一个属性 然后与一些控件一起显示在表中 我想我在这里有一个一般性的理解问题 我会尽力解释它 每行中的控件之一是 删除 按钮 该按钮应该删除它所在的行 我所做的是将事件
  • 如何使用AutoMapper按照类中定义的顺序映射对象?

    给定这两个对象 我使用非常不同的对象来更好地阐明 public class Car public string Brand get set public int Speed get set public class Apple public
  • 如何检查 NTAccount 对象代表组还是用户?

    使用返回的访问规则时 GetAccessRules True True GetType System Security Principal NTAccount 如何判断每个规则中引用的 NTAccount 对象是用户帐户还是组 Update
  • MySQL - 多个结果集

    我正在使用 NET Connector 连接到 MySQL 在我的应用程序中 很少有线程使用相同的连接 因此如果 MySQLDataReader 尚未关闭并且某个线程正在尝试执行查询 则会出现该错误 已经有一个打开的 DataReader
  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • 在.rdlc报告的底部设置一个文本框

    我在 rdlc 报告中使用 tablix 有一个文本框 其中包含文本 签名 我想将此文本框放置在报告最后一页的底部 就在页脚之前 我已经用谷歌搜索了这个解决方案 但没有找到满意的结果 我的环境是VS2010 framework 4 0 有什
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的

随机推荐

  • iPhone 5 横向媒体查询不起作用

    我想以不同的方式显示纵向和横向 iPhone 的页面 在 iPhone 4 4S 设备上一切正常 纵向和横向 但在 iPhone 5 5s 上只有纵向模式工作正常 横向显示正常的 PC 网站 你知道出了什么问题吗 我的查询看起来像这样 肖像
  • Azure 的云服务负载平衡极其不均匀

    我正在利用 Azure 托管云服务 最近我对其进行了修改 使其可以跨多个实例进行扩展 包括会话缓存辅助角色 我的问题是 为什么我会在一个实例上看到极端负载 高达 90 但在其他实例上却没有 所有其他实例为 15 20 我应该担心吗 在我设置
  • JAVA - 如何从Annotation中获取注释?

    我想从注释中获取注释 但奇怪的是我无法从注释实例中获取单个注释 我该如何解决这个问题 我想从此注释实例获取注释 public static void test Annotation annotation System out println
  • primefaces 编辑器重新渲染时显示 true

    我的项目中有一个编辑器
  • fsockopen 和curl 之间哪个更好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在创建一个用于自动定期计费的应用程序 请让我知道我应该选择哪个选项将请求发送到服务器 fsockopen curl 为什么一个比另一个更好
  • 从 NodeJS 内部调用 Express Route

    我的 API 有一个 ExpressJS 路由 我想从 NodeJS 中调用它 var api require routes api app use api api 在我的里面 routes api js file var express
  • PHP Jade 模板解析器

    我正在寻找 NodeJS 中使用的 Jade 模板引擎的 PHP 实现 我最近尝试过Jade php https github com everzet jade php 但它是不完整的 因为它不支持继承或部分 我也见过PHPNativeJa
  • java - 确定任何 web 应用程序和独立应用程序所需的 -Xmx 和 -Xms 的最佳方法

    我想知道如何确定独立应用程序以及在 tomcat 服务器上运行的 Web 应用程序所需的堆大小 部署到服务器后如何确定相同 Thanks 您可以从分析内存使用情况开始 JDK 6以上 有它的可视化虚拟机 http visualvm java
  • Sequelize - where 子句中的列上的函数

    我有一个餐厅模型 其属性 位置 类型为 GEOMETRY Point 我正在尝试使用sequelize编写一个查询 该查询将为我提供特定半径内的所有餐厅 models Restaurant findAll attributes models
  • 将二进制字符串转换为 numpy 数组

    假设我有字符串 my data x00 x00 x80 x00 x00 x00 x00 x00 x00 x00 x80 我从哪里得到它是无关紧要的 但为了有具体的东西 假设我从二进制文件中读取它 我知道我的字符串是 4 个 4 字节 浮点数
  • 应用补丁时“1 行添加空格错误”是什么意思?

    我正在编辑克隆的远程存储库的一些 Markdown 文件 并且想要测试从一个分支到另一个分支的创建和应用补丁 但是 每次我进行任何更改时 我都会收到以下消息git apply 0001 b patch 16 trailing whitesp
  • 如何配置jetty将日志放入外部文件

    如何配置jetty将其日志放入外部文件中 手册说 http www eclipse org jetty documentation current configuring logging html configuring jetty log
  • 如何添加带有 ionic / ionic 2 / ionic 3 / ionic 4 / ionic 5 的本地cordova插件?

    我目前使用 ionic 和我的 cordova 插件同时开发一个应用程序 我想知道如何使用该文件plugins fetch json从本地文件系统更新我的插件 任何想法 使用 ionic 添加本地插件 ionic cordova plugi
  • 运行两个异步函数而不互相阻塞

    我有一个异步函数 我想 并行 运行另一个异步函数 但我需要在某个时刻去做在第一个函数内 我见过很多例子 但它们都同时启动两个功能 这不是我想要的 我创建了这个简单的示例来说明我想要实现的目标 以及我尝试过的目标 import asyncio
  • 使用实体框架代码优先的 XML 字段

    我将实体框架与 Code First 模型一起使用 宠物项目 我喜欢编辑简单的类并自动更新我的架构 我有一堂课如下 Table Polygons public class Polygon public int PolygonId get s
  • std:: 在 C++/17 中没有成员“文件系统”

    我正在尝试包括
  • 无法在AWS中使用RDS创建弹性Beanstalk环境

    我正在尝试使用现有的 VPC 创建新的 ELB 环境 但我无法创建环境并出现以下错误 错误创建名为 sg 5xxxxxxx 的安全组失败原因 资源创建已取消 错误 创建 EIP xx xxx xxx xxx 失败 原因 资源创建已取消 错误
  • 我可以在R中的ggplot2中使用格子中的带状疱疹吗

    可以使用shingles定义特定范围ggplot2 据我所理解shingles是生成组的一种方法 我们能否创造这样的shingles 并将它们用于ggplot2 facet grid获得图表 根据评论 ggplot无法绘制木瓦 以晶格在条带
  • StringIndexOutOfBoundsException

    我在让方法在 Java 中正常工作时遇到一些问题 在程序中 我创建了一个由许多不同长度的不同单词组成的数组 我正在研究的方法应该读取用户输入的字长 字母和位置 然后 Java 将打印出与这三个参数匹配的任何单词 例如 如果用户输入字长 4
  • 如何在另一个目录中分离托管和非托管 DLL

    我的发布文件夹是 MyApp exe MyManagedDLL dll NativeDLL dll MyApp 使用托管 dll 它通过 pinvoke 调用本机 dll 我尝试将它们移动到另一个子文件夹 并再次引用托管 dll 当我运行我