我可以在DLL中嵌入其他文件吗?

Eri*_*tas 11 .net c# dll embedding winforms

我正在通过API为另一个应用程序编写插件.插件分发了一个DLL.是否可以在DLL文件中嵌入其他文件,如pdf,图像,chm帮助文件等...我希望能够提供插件的文档,但我仍然希望保留分发插件的能力-in作为单个文件,用户只需拖放到要安装的应用程序上即可.

Gre*_*osz 9

当然,您可以在DLL中嵌入资源.然后在运行时你只需:

Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("com.stackoverflow.plugin.example.Foo.pdf");
Run Code Online (Sandbox Code Playgroud)

这将为您提供Foo.pdf嵌入DLL中的文件的流.请注意资源名称必须由您调用该方法的类型的命名空间确定范围.

  • 如果不确定文件名Foo.pdf之前应该使用哪个命名空间。在调试中运行它,即string [] resourceNames = Assembly.GetExecutingAssembly()。GetManifestResourceNames();` (2认同)

Luc*_*ero 6

当然,只需在VS.NET中将它们作为"嵌入式资源"(假设您正在使用它).然后,您可以通过资源API或使用Assembly.GetManifestResourceStream()来读取它们.


Ces*_*Gon 1

是的,你可以这么做。

将资源文件添加到您的项目中。在 Visual Studio 中打开资源文件,然后单击“插入资源”。您可以选择不同类型的资源,包括外部文件。

Visual Studio 将为您生成代码,以便您可以在运行时通过标识符从文件名检索文件作为字节数组Resources