如何结合一个程序的所有资源?

时间:2012-07-08 18:58:58

标签: c#

有没有办法让c#程序成为人们可以下载和播放的单个可执行文件,而不是安装?

3 个答案:

答案 0 :(得分:1)

您的问题不是很明确,但我认为您正在寻找embedded resources

  

<强>概述

     

.NET Framework可以将文件封装为已编译程序集的一部分。这些文件称为嵌入式资源。这些资源与与程序集关联的.resources和.resx文件完全分开。您可以在运行时通过System.Reflection命名空间的Assembly类访问这些资源。

     

将资源嵌入Manifest的一个主要优点是,因为文件是编译程序集的一部分,所以用户不会意外删除或错放对应用程序至关重要的文件,这在某些情况下可能会阻止程序的执行。此方法的一个限制是,如果不重新编译程序,则无法将对此文件的任何更改保存到程序集。因此,仅包括在应用程序的生命周期内不会作为嵌入式资源更改的文件。

读取嵌入资源的示例代码:

_assembly = Assembly.GetExecutingAssembly();
_imageStream = _assembly.GetManifestResourceStream("MyNamespace.MyImage.bmp");
_textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("MyNamespace.MyTextFile.txt"));

答案 1 :(得分:1)

您可以使用Microsoft Research开发的ILMerge tool将多个程序集合并为一个。

答案 2 :(得分:0)

检查项目的bin文件夹,它应该有一个可以运行的可执行文件。

check this link for more info