在类库中嵌入二进制文件

时间:2009-05-21 08:53:09

标签: c# binary embedding

是否可以在C#类库中嵌入自定义二进制文件,然后在运行时使用二进制读取器读取它?

我猜测可能通过资源。

非常感谢

2 个答案:

答案 0 :(得分:15)

您可以通过项目属性将文件添加到Resources来完成此操作。 Visual Studio将为您提供一个方便的类来使用以下代码访问您的文件

byte[] theFile = myNamespace.Properties.Resources.theBinaryFile;

资源名称为theBinaryFile。

答案 1 :(得分:4)

是的,很容易:

将文件添加到项目中,并将“Build action”设置为“Embedded resource”。

在你的程序中

foreach (string name in Assembly.GetExecutingAssembly().GetManifestResourceNames())
{
  if (name.EndsWith("<name>", StringComparison.InvariantCultureIgnoreCase))
  {
    using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name))
    {
      // ...
    }
    break;
  }
}

找到正确的资源有点复杂,因为文件名前面有东西(名称空间等等。设置断点到if(...)以查看真实资源名称。)