在服务器中使用.dll而不是在已部署的应用程序中

时间:2014-02-28 10:44:19

标签: c# dll windows-server

我的应用程序需要一个Oracle .dll,我将其与其他应用程序一起部署到应用程序的bin文件夹中,并且工作正常。

但我想要做的是避免部署库,所以我需要服务器知道在哪里寻找它。我将.dll添加到C:\Oracle\bin,这是Path系统变量中包含的路径。但如果它不在应用程序的bin文件夹中,它就找不到程序集。

请提供任何提示?

2 个答案:

答案 0 :(得分:0)

这几乎是有用的。您发现了2个可行的部署选项。 1)将其捆绑在应用程序bin目录中或2)正确安装oracle网络协议并使用安装API。

我真的只能想到两个选项。 1)与必要的网络库静态链接 - 我不记得曾经在Windows上看到这些,我知道我已经在Unix上使用静态链接到OCI库,但很久以前。 2)在中间层托管Oracle连接,让部署的应用程序始终调用中间层(而不是直接调用Oracle)

顺便说一句,你可能不想使用OCI库,比现代的做法更难看。

答案 1 :(得分:-1)

如果您进入要添加的dll的引用属性,则可以将Copy Local属性更改为False。 这将允许程序从您找到dll的原始位置拉出dll。

您唯一需要注意的是,如果您的程序不能找到您的dll,那么您的dll与开发者PC上的位置和服务器上的位置相同。例如,如果服务器上的dll位于C:\ Oracle \ bin中,它必须位于开发PC上的C:\ Oracle \ bin。