0

我有一些 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");

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

4

2 回答 2

1

查看FileStreamStream.CopyTo()

于 2012-08-23T19:57:33.857 回答
1

Assembly.GetManifestResourceStream返回一个Stream对象。

.Net 4.0 及以上

你可以用这个流做任何你想做的事情,比如把它写到一个文件中。如果您使用的是 .Net 4.0 或更高版本,则流类有一个CopyTo方法,允许您将一个流复制到另一个流。

4.0以下

如果您使用的是低于 4.0 的 .Net 版本,您可以看到Jon Skeet的这个答案,其中有一个将流复制到 FileStream 的示例,即:将其写入文件。

于 2012-08-23T20:09:49.483 回答