今天一个同事问我,怎么把Dll动态链接库直接嵌入到C#开发的应用程序本身,让C#在发布出去的时候,只是一个.exe的文件,而不是一个文件夹。我仔细思索了一下这个问题。发现这个问题其实可以总结为一个比较普遍的问题,那就是怎样把不同种类的文件包含到C#开发的应用程序自身内,然后变成一个.exe的文件给用户发布出去。
其实,思路还是比较简单的,我们首先把需要包含到应用程序本身的文件作为外部的资源文件加入到程序中,然后在程序运行的时候,由程序自己自动把资源文件给释放出来,实际上就达到了,即可包含不同文件在应用程序内,又可以随时释放该文件并使用的目的。
(1)首先,我们使用VS2005新建一个WindowsForm的开发程序(说个题外话,虽然现在我在公司用的都是VS2010了,但是我还是喜欢VS2005,因为我觉得,只要VS2005都运行的起的程序,VS2010肯定也可以运行。不过,最主要的还是因为我家这个电脑太恼火了,拖起VS2005都已经很卡了,所以就没有装VS2010了)。
(2)然后,我们为了测试一个Dll包含到应用程序本身,并保证该应用程序在调用该Dll以后正常运行,我现在用VS里面提供的带DLL的控件,Media Player做一个演示。现在我们要添加该控件,选择‘菜单’-‘工具’-‘工具箱项’,如下图:
(3)我们选择COM选项卡,选择Media Player 这个mp3播放控件,选择完成后,我