【发布时间】:2011-06-25 00:21:45
【问题描述】:
如何正确引用我没有物理访问权限的 C# DLL? (我实际上有 DLL,但不是所有的依赖项。)
背景:
在目标计算机上,C:\FancyProgram中安装了一个程序和许多相互依赖的dll文件。
我需要编写一个简单的应用程序,该应用程序将部署在目标计算机上C:\SimpleProgram。
这个简单的程序需要调用C:\FancyProgram 下的其中一个dll 文件。它是一个 .net 托管的 DLL
在我的开发机器上,我确实没有有FancyProgram 的副本。我确实有那个 DLL 文件,但我没有它的许多依赖项。我也无法将该 DLL 捆绑到 SimpleProgram。
在我的 Visual Studio 项目中使用和引用此 DLL 的正确方法是什么,以便我的 SimpleProgram 能够正确编译但在运行时从正确位置加载 DLL?
谢谢
【问题讨论】:
-
托管 (.NET) 或非托管 dll?
-
托管。 (已更新。谢谢。)
-
在托管情况下,从正确的位置也将是一个问题,因为从 C:\SmpleProgram 不会从 C:\FancyProgram 加载任何 dll。或者依赖项是 GAC 版的?从来没有尝试过符号链接是否可以解决问题(是的:weblogs.asp.net/israelio/archive/2011/01/10/…)
-
我不知道 FancyProgram 如何管理它自己的 DLL 加载。
-
如果您需要调用其中一个 dll 文件,那么您将不得不引用它,我假设这个简单程序也是 C#,没有办法解决这个问题。您需要从 Fancy Program 中获取所需的 dll,您所要做的就是复制和粘贴。如果有问题的 dll 以正确的方式编写,它将不依赖于其他任何内容,如果没有正确编写,您显然在这件事上别无选择。你的问题真的没有意义,你怎么能期望使用一个你不能与将使用该 dll 文件的程序捆绑的 dll?
标签: c# visual-studio dll dllimport