您似乎在这里面临两个挑战:分销和资产包装。
分配
将整个应用程序打包到您认为合适的目录中,然后将顶级目录放入.zip文件中。分发该.zip文件。当用户解压缩zip时,他们将拥有一个文件夹,其中包含准备运行游戏所需的一切。
您如何放置文件?
- 您的.dll通常需要与可执行文件位于同一目录(有例外,但是为了简单起见...)
- 您的资产(图像,音频)可以在任何位置,尽管如果将它们移至可执行文件中,则必须修改资源加载代码以将其考虑在内。
我通常会这样:
MyGame \ //顶级目录包含整个程序
bin \ // dll和编译后的exe一起放在此处
res \ //游戏资源顶级目录
音乐\
声音特效\
语音\
cfg \ //默认配置文件(用户配置位于用户目录中)
MyGame.lnk //编译后的exe的快捷方式
资产包装
您可以使用某种压缩库(zlib,lzo)将所有游戏资源(上述res \目录)压缩到一个文件中。然后,您需要使用相同的压缩库实时提取资源内容,以将资产加载到游戏中。
然后,当您想修补资产时会发生什么?然后,您要么:编译一个全新的资产文件并将其分发给您的用户(这样他们本质上就是重新下载他们已经拥有的资源,以及少量的附加功能),或者您必须构建一个更新程序(另一个程序来维护) ),并处理可能出错的事实,并且您的资产文件将被损坏...
坦白地说,完成这项工作并非微不足道,而且我看不到您的情况会带来什么回报。一个简单的目录应该足以封装10个精灵,添加和修补东西要容易得多:只需将它们下载到正确的目录并完成。
构建安装程序
这是假设您的目标是Windows ...一旦您掌握了上述内容,就可以为您的游戏构建安装程序。我将不惜一切代价避免Visual Studio支持的ClickOnce方法。它不是您典型的Windows安装程序,它带有自己的一套怪癖。
看一下这个StackOverflow问题 -它包含一组有用的指向您可以使用的安装程序包的链接。如今,很多人似乎都喜欢WiX。我自己从未使用过它。此外,AdvancedInstaller和InnoSetup都是流行的选择。