如何从C#控制台应用程序创建7-Zip存档?我需要能够使用常规的,广泛使用的7-Zip程序来提取档案.
byte[].当我将byte[]数组写入文件时,我无法使用7-Zip(File.7z is not supported archive)提取它.File.7z is not supported archive)提取文件.所以,我的应用程序依赖于大量的小文件。实际数字约为 90,000 人。现在,我使用一个需要访问这些文件的组件,但它接受这些文件的唯一方法是使用 URI。
到目前为止,我在开发应用程序时只是将包含所有文件的目录添加到我的调试文件夹中。然而,现在我必须考虑部署。我可以选择哪些选项将所有这些文件包含在我的部署中?
到目前为止,我已经提出了几种不同的解决方案,但没有一个能够完全发挥作用。首先是将所有文件添加到安装程序中,然后安装程序会将它们复制到其位置。这至少在理论上是可行的,但是它会使维护安装程序(使用 VS 生成的标准 MSI 安装程序)变得绝对是地狱。
我想到的下一个选项是将它们压缩到一个文件中,并将其添加为安装程序的一部分,然后使用自定义操作解压缩它们。然而,标准库似乎不支持复杂的 zip 文件,这使得这是一个相当困难的选择。
最后,我意识到我可以创建一个单独的项目并将所有文件添加为该项目中的资源。我不知道的是指向其他程序集中存储的资源的 URI 是如何工作的。意思是,所有支持“application://,,,:Assembly”格式的东西都是“标准”吗?
那么,这些是我唯一的选择,还是还有其他选择?解决这个问题的最佳选择是什么?