gpt4 book ai didi

c# - 将 exe 指向可执行文件目录之外的 dll

转载 作者:可可西里 更新时间:2023-11-01 11:54:22 26 4
gpt4 key购买 nike

使用C#、VS2012、windows server 2012r2

我对此进行了一些搜索,我想我已经知道答案了,但希望有人能告诉我我是否正确。

我有一个网站,其 bin 文件夹中有一个 dll。我还有几个可按需或按计划运行的可执行工具,几乎所有这些工具都使用与 wesbite 相同的 dll。或者更确切地说,他们使用驻留在每个 exe 文件夹中的该 dll 的副本。

这很麻烦,因为每当我为网站更新该 dll 时,所有这些 exe 现在都在使用旧版本的 dll。因此,如果我可以将所有 exe 文件指向网站 bin 文件夹并使用其中的 dll,我会很高兴。

如果可能的话,我宁愿不修改 Windows PATH 值。如果是这样,看起来需要使用一个名为 LoadLibrary 的函数?我几乎不做任何 Windows 编程,所以我对此一点都不熟悉。这是唯一(或最好)的方法吗?

我找到了这篇博文:http://blogs.msdn.com/b/jonathanswift/archive/2006/10/03/dynamically-calling-an-unmanaged-dll-from-.net-_2800_c_23002900_.aspx

我是否只创建 NativeMethods 类,然后为我需要调用的每个方法/函数调用 GetProcAddress?

我希望有一种方法可以基本上告诉 exe 使用 app.config 在特定文件夹中查找 dll。这不可能吗?

谢谢

最佳答案

看起来你的 DLL 是一个托管 DLL(建立在 .net 上),因为你说你几乎不做任何 Win32 API 编程。

一种解决方案是将您的 DLL 安装在 GAC 中.然后每次更新 DLL 程序集版本并部署到 GAC 时,您都必须重定向您的应用程序以使用最新版本。 See this .

关于c# - 将 exe 指向可执行文件目录之外的 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20986480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com