【发布时间】:2014-01-08 03:29:17
【问题描述】:
使用C#,VS2012,windows server 2012r2
我对此进行了一些搜索,我想我已经知道答案了,但希望有人能告诉我我是否正确。
我有一个网站,它的 bin 文件夹中有一个 dll。我还有几个按需或按计划运行的可执行工具,几乎所有工具都使用与 wesbite 相同的 dll。或者更确切地说,他们使用驻留在每个 exe 文件夹中的该 dll 的副本。
这很麻烦,因为每当我为网站更新该 dll 时,所有这些 exe 现在都在使用旧版本的 dll。因此,如果我可以将所有 exe 文件指向网站 bin 文件夹并使用其中的 dll,我会很高兴。
如果可能的话,我宁愿不修改 Windows PATH 值。如果是这样,它看起来需要使用一个名为 LoadLibrary 的函数?我几乎不做任何 Windows 编程,所以我对此一点也不熟悉。这是唯一(或最好)的方法吗?
我是否只是创建 NativeMethods 类,然后为我需要调用的每个方法/函数调用 GetProcAddress?
我希望有一种方法可以基本上告诉 exe 使用 app.config 在特定文件夹中查找 dll。这不可能吗?
谢谢
【问题讨论】:
-
您的 DLL 是托管还是非托管 DLL?
-
您可以尝试将 DLL 放在某个地方,然后在每个应用程序 bin 目录中创建指向它的符号链接(需要 Vista 或更高版本)。更新应该只需要替换单个链接目标。我认为这应该可行,但我对 Windows 上的符号链接没有太多经验,而且 Windows 似乎也没有为它们提供很好的工具/管理支持。
-
托管 - 全部在 .net/C# 中完成