天天看点

如何将松散的dll打包进需要发布的exe

    我们需要发布的exe文件很多时候都可能会依赖于一堆松散的dll,如果想在发布的时候只提供exe文件,而不想把一大堆dll一起放在和exe同一个文件夹下,是有方法的,该方法由CLR via C#作者提出,我在实践的过程中遇到的几点问题,现在记录下总体的流程和该注意的事项。

                          

        1.打开VS,新建类库,使用默认的ClassLibrary1名称。

                  

如何将松散的dll打包进需要发布的exe

        2.在Class1中添加一个公开的方法:HelloWrold,并且返回一个字符串。

               

如何将松散的dll打包进需要发布的exe

        1.添加ClassLibrary1dll的引用:

              

如何将松散的dll打包进需要发布的exe

        2.把ClassLibrary1复制到项目中,右键dll,选择生成方式为:嵌入的资源

如何将松散的dll打包进需要发布的exe

        3.打开Form1的后台代码,修改成:

       4.使用作者提供的代码,原理就是:绑定在应用程序发生程序集解析失败的时候触发的事件,在绑定方法中获取自身exe的资源,并且加载。打开Program类,修改成:

        

    这里要注意的是(WindowsFormsApplication1.)这个是需要改动的点,就是dll在exe资源中的前缀名称,大家可以使用反编译工具查看exe资源,然后再修改。

      5.测试

        找到bin目录下,把exe文件拷贝到桌面或者其他地方(没有依赖的dll,这里是没有ClassLibrary1.dll的地方),运行。

            

如何将松散的dll打包进需要发布的exe

 大功告成!

    注意事项: