c# winform程序调用托管dll(c#的dll),使用"添加引用"和动态加载dll

1. dll要强名.

2. winform程序要添加引用dll(自动获得dll的函数调用定义),"复制本地"属性设false,因为下一步会动态加载dll,所以"复制本地"属性设true也没有意义,反而在程序目录增加一个dll文件,混淆视听.

3. winform程序增加配置文件app.config,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <!--固定值urn:schemas-microsoft-com:asm.v1-->
      <dependentAssembly>
        <assemblyIdentity name="chengxuji"
                          publicKeyToken="ef1fe3591431fbcc"
                          />
                            <!--chengxuji程序集名,ef1fe3591431fbcc公钥标记(需强名,在GAC中注册后就有了)-->
        <codeBase version="1.0.0.0" href="1\\chengxuji.dll"/>
                              <!--1.0.0.0版本要一致,..\\chengxuji.dll程序集目录(相对本程序运行目录)-->
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

这样就可以动态加载dll了,

1.用了引用,不用自己定义dll函数说明.

2.动态加载dll,可用相对目录,上级目录也可以,方便多系统共用同一个dll.即exe和dll不在同一目录.

 最近找到了一个更方便的做法,不需要强名和版本,这是网址http://www.cnblogs.com/heimark/archive/2010/10/14/1851032.html

原文地址:https://www.cnblogs.com/heimark/p/1800494.html