设置要在web.config中加载的DLL的位置

时间:2011-08-12 12:59:40

标签: asp.net oracle web-config gac

是否可以在web.config中设置要加载的特定DLL的本地文件路径位置,而不是将这些DLL放在GAC或C:\Windows\System32中。

这样可以更轻松地部署Web服务,而不必乱用其中任何一种。

我已经尝试过将DLL添加到项目中但没有成功。它们是4个oracle即时客户端DLL。

  • oci.dll
  • orannzsbb11.dll
  • oraocci11.dll
  • oraociicus11.dll

如果有人知道这样做的方法会很棒。

编辑: 请注意,DLL的注释是“强名称”,所以我不能使用他们的公钥引用它们。

此外,它们目前未在项目中直接引用,因为它们无法添加。

2 个答案:

答案 0 :(得分:1)

您可以使用dependentAssembly元素通过dll元素指定codeBase所在的位置。

但是,我认为这需要是一个有效的网址。

来自MSDN的示例:

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="myAssembly"
                              publicKeyToken="32ab4ba45e0a69a1"
                              culture="neutral" />
            <bindingRedirect oldVersion="1.0.0.0"
                             newVersion="2.0.0.0"/>
            <codeBase version="2.0.0.0"
                      href="http://www.litwareinc.com/myAssembly.dll"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

答案 1 :(得分:1)

探测路径允许您指定应用程序查找程序集的位置。这不会影响GAC中的内容,但可以替代将所有内容存储在bin文件夹中。

http://msdn.microsoft.com/en-us/library/823z9h8w.aspx