从Embeddable资源中提取/移动文件

时间:2012-08-23 19:08:58

标签: c#

我有几个exe,我希望在启动时存储我的程序。

到目前为止,我添加了一个可执行文件和2个dll作为资源。我还将它们设置为属性中的“嵌入式资源”。有一个选项我可以“复制到输出目录”但是我想将它们存储在另一个文件夹中

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData

而不是我的程序启动的地方。

到目前为止,我还没有阅读过几个论坛:

    Assembly _assembly;
    Stream _exemin;
    Stream _dllmin;
    Stream _dllmin2;

    _assembly = Assembly.GetExecutingAssembly();
    _exemin = _assembly.GetManifestResourceStream("LitecoinBN.minerd.exe");
    _dllmin = _assembly.GetManifestResourceStream("LitecoinBN.libcurl-4.dll");
    _dllmin2 = _assembly.GetManifestResourceStream("LitecoinBN.pthreadGC2.dll");

但是我不确定如何提取这些资源?

2 个答案:

答案 0 :(得分:1)

查看FileStreamStream.CopyTo()

答案 1 :(得分:1)

Assembly.GetManifestResourceStream会返回Stream个对象。

.Net 4.0及以上

您可以使用此流执行任何操作,例如将其写入文件。如果您使用的是.Net 4.0或更高版本,则流类具有CopyTo方法,以允许您将流复制到另一个流。

低于4.0

如果您使用的是4.0以下版本的版本,您可以通过answer查看此Jon Skeet,其中有一个将流复制到FileStream的示例,即:将其写入文件。