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