在运行时引用外部DLL

时间:2011-11-30 16:48:43

标签: c# .net

更新:我已根据建议强烈命名我的DL​​L,但我的codeBase标签似乎没有任何效果。 Fusion不会将我的自定义目录显示为dll扫描目标之一。启动我的服务仍会抛出FileNotFoundException。

我的项目根目录的子文件夹中有几个exe。我需要将DLL放入根目录并启用所有这些exe来引用它。到目前为止,我已经编辑了我的exe的app.config文件:

<configuration>
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="resources"
                            publicKeyToken="fe437a7f5a917214"
                            culture="neutral" />
          <codeBase version="1.0.0.0"
                    href="file:///c:/program files (x86)/root Directory/resources.dll"/>
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
</configuration>

我的exe在IDE中有一个引用集,其中“copy local”选项设置为false。然而,当我尝试启动我的exe(它是一个Windows服务)时,它会出错并写入一个抛出System.IO.FileNotFoundException的Windows事件日志。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

href="file:///c:/program files (x86)/root Directory/resources.dll"/>

需要

href="file:///c:\program files (x86)\root Directory\resources.dll"/>