C#:指定Dll引用的位置

时间:2009-09-05 07:24:17

标签: c# .net

在C#控制台应用程序中,我们可以通过[Soln Explorer - References& amp;然后添加reqd dll的引用。

在这种情况下,应用程序希望dll出现在同一文件夹中。如果没有,那么应用程序不起作用[抛出异常]。

如果一个dll与application [exe]的文件夹不在同一个文件夹中,那么我们是否有可能从程序可以加载reqd dll的其他位置\ path开始,然后继续其功能。< / p>

谢谢, 阿米特

4 个答案:

答案 0 :(得分:4)

正如Fredik所述,您可以在GAC中安装程序集。还有另一种方法可以做到这一点。您可以将程序集复制到任何位置(将此位置设置为受信任位置,如果它位于网络上)并处理Assembly类型的 ModuleResolve 事件。在回调中,您有机会解析对程序集的引用。


第二个想法,我建议你看看AssemblyResolver。它绝对应该解决您解决程序集的任何问题。

答案 1 :(得分:4)

您可以将App.config文件添加到您的应用程序并指定程序集的位置:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly> 
            <assemblyIdentity 
                name="MyAssembly" 
                culture="" 
                publicKeyToken="8968ee41e78ce97a" /> 
            <codeBase 
                version="1.0.0.0" 
                href="file://c:/some_path/myassembly.dll" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

编辑:

  1. 可能需要设置culture =“中立”
  2. 如果程序集是强签名的,请验证令牌是否正确,否则设置为publicKeyToken =“null”

答案 2 :(得分:0)

您可以在GAC(全局程序集缓存)中安装库。

答案 3 :(得分:-1)

您可以将要引用的所有DLL放在Libraries文件夹或其中一些,并从那里引用它们。

项目&gt;参考文献&gt;浏览

善,