子目录的Windows cabinet文件

时间:2014-02-08 22:36:27

标签: windows

我有一个java项目,它在不同的目录中有一组库和xml文件。但是,当我看到我创建的cabinet文件时,它将所有文件放在一个地方(虽然我可以看到文件,但是有子目录)。我可以创建包含子文件夹的cabinet文件吗?

如果无法在cabinet文件中包含目录,一旦我将cabinet文件发布给我的最终用户进行安装,那么我是否需要向他提供INF文件以及cabinet文件?

任何人都可以提供此问题的样本INF文件吗?

最终用户收到cabinet文件后立即执行的最后步骤是什么?他会用IE打开它吗?

1 个答案:

答案 0 :(得分:1)

回答你的第一个问题:是的cabint确实支持直升机。例如,请参阅此blog帖子。如果使用makecab作为工具,则可以创建一个指令文件,该文件控制压缩哪些文件以及提取它们的目录(可能是不同的目录)。 例如:

C:\temp>type files.txt
C:\temp\test1\files.txt
.Set DestinationDir=TestDir1
C:\temp\test1\test2\2.txt
.Set DestinationDir=TestDir2
C:\temp\test1\test3\2.txt

使用以下命令我可以创建cab文件

makecab / d“CabinetName1 = test.cab”/ f files.txt

当我用7-Zip打开驾驶室时,我可以看到文件 2.txt 将按预期转到 TestDir1 TestDir2 。那说你为什么要打扰一个cab文件呢?我的应用程序不需要安装程序,您可以使用zip文件,而不是麻烦。

但是如果你需要创建一些安装程序,我建议你使用WIX工具包,你只需要声明安装到xml文件中哪个位置的内容。有关更多信息,请参阅manual。 WIX工具包还为您创建msi所需的cab文件。

您希望分发一个可能主要与操作系统无关的Java应用程序,但如果您需要安装程序,则不需要安装程序。请为每个目标平台使用首选安装机制,以确保为您的客户提供最少的问题。

是的我知道这个建议很糟糕。但是部署也是一项重要的开发活动,总是(并且我担心总是会)比最初希望的更加复杂和容易出错。