我可以在DLL中嵌入其他文件吗?
我正在通过API为另一个应用程序编写插件。 插件分发了一个DLL。 是否可以在DLL文件中嵌入其他文件,如pdf,图像,chm帮助文件等…我希望能够提供插件的文档,但我仍然希望保留分发插件的能力-in作为单个文件,用户只需拖放到要安装的应用程序即可。
当然,您可以在DLL中嵌入资源。 然后在运行时你只需:
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("com.stackoverflow.plugin.example.Foo.pdf");
这将为您提供嵌入DLL中的Foo.pdf
文件的流。 请注意资源名称必须由您调用该方法的类型的命名空间确定范围。
当然,只需将它们作为VS.NET中的“嵌入式资源”(假设您正在使用它)。 然后,您可以通过资源API或使用Assembly.GetManifestResourceStream()读取它们。
是的,你可以这样做。
将资源文件添加到项目中。 在Visual Studio中打开资源文件,然后单击“插入资源”。 您可以选择不同类型的资源,包括外部文件。
Visual Studio将为您生成代码,以便您可以在运行时通过Resources
标识符从名称中检索文件作为字节数组。
作为替代选项,如果您需要在用户计算机上解压缩并保存文件(比如您希望在应用程序外部访问的chm文件),您也可以对zip文件执行相同操作。
你说你希望文件被“拖动”到你的应用程序上。 只需检查您的DDE事件,看看该文件是否为zip(甚至可能使用带有元数据的jar),并解压缩必要的文件,包括实际的插件。
这与openxml docs的想法相同,它们实际上只是伪装的拉链。
- 无法加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Common”或其依赖项之一
- 如何修复,无法加载文件或程序集“XXX”或其中一个依赖项。 强名称签名无法validation
- 如果在构造函数中设置DataContext,那么在调用InitializeComponent()之前或之后设置它是否重要?
- 将Env Conn字符串注入.NET Core 2.0 w / EF Core DbContext中的不同类lib比启动prj并实现IDesignTimeDbContextFactory
- 使用LINQ时,&&和多个where子句之间有什么区别?
- 如何检索IP v6子网掩码长度
- 如何在Windows XP上以管理员身份运行其他应用程序
- 无法从用法中推断出方法的类型参数
- 通用约束:强制类型具有静态函数和带参数的构造函数
- 了解局部变量的垃圾收集器行为
- Datagridview上的ComboBoxColumn中的“SelectedIndexChanged”事件