日期:2014-05-17  浏览次数:20970 次

VS2012 C# 如何自定义引用路径

假如现在引用一个第三方类库【x.dll】,当程序发布时,这个【x.dll】必须与【主程序.exe】相同目录,如果我希望把这个【x.dll】放到主程序的子目录【.\lib\x.dll】下,该怎么弄才能使主程序可以正确引用?

谢谢!

------解决方案--------------------
1.为程序项目添加"常规"中"应用程序配置文件",生成xx.app.config
2.在config文件中<configuration>下添加(name和publicKeyToken注意小写开头)
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="ClassLibrary1" culture="neutral" publicKeyToken="4759653504a2f97b" />
          <codeBase version="2.0.0.1" href="FILE://D:/test/ClassLibrary1.dll"/>
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
3.dll必须签名,上面的version和publicKeyToken必须和dll中的信息一致。

------解决方案--------------------
app.config添加搜索的路径即可

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <probing privatePath="lib" />
  </assemblyBinding>
</runtime>