当前位置: 代码迷 >> C# >> vs2010 C# 引用dll 路径有关问题
  详细解决方案

vs2010 C# 引用dll 路径有关问题

热度:497   发布时间:2016-05-05 05:33:35.0
vs2010 C# 引用dll 路径问题
  我在一个c# 类库中调用了一个托管c++dll,这个dll又引用了很多c++ dll,但是这个dl必须存放在bin下面,太杂乱。不知道如何可以将他们单独放在一个文件夹里被引用。求大神指教
------解决思路----------------------
非托管dll可以放在system32 programfiles 程序目录 或者环境变量指定的地方
托管dll可以在app.config中配置搜索路径
------解决思路----------------------
如何在项目中引用exe路径以外的dll
 1. 主工程添加控件工程,copy local设置为false
(这个意思是控件工程生成的dll不会copy到主工程下,即不会build一份和exe放在一块。)
2. 在主工程里添加一个app.config。配置如下:

<?xml version="1.0"?>  
<configuration>  
  <startup>  
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>  
  </startup>  
  <runtime>  
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
      <!--<probing privatePath="bin;bin2/subbin;bin3"/>-->  
      <dependentAssembly>  
        <assemblyIdentity name="MyCheckBoxCtrl"/>  
        <codeBase href="ExtDlls/MyCheckBoxCtrl.dll" mce_href="ExtDlls/MyCheckBoxCtrl.dll"/>  
      </dependentAssembly>  
    </assemblyBinding>  
  </runtime>  
</configuration>
  
注意:如果是强名称的dll,可以是放在任意位置。没有强名称的dll只能放在exe目录下面的某个子目录。
比如:exe是在bin/debug,那么可以放在 bin/debug/bin2 或者其他的别的名字的目录里。
  相关解决方案