我有一个java项目,它在不同的目录中有一组库和xml文件。但是,当我看到我创建的cabinet文件时,它将所有文件放在一个地方(虽然我可以看到文件,但是有子目录)。我可以创建包含子文件夹的cabinet文件吗?
如果无法在cabinet文件中包含目录,一旦我将cabinet文件发布给我的最终用户进行安装,那么我是否需要向他提供INF文件以及cabinet文件?
任何人都可以提供此问题的样本INF文件吗?
最终用户收到cabinet文件后立即执行的最后步骤是什么?他会用IE打开它吗?
答案 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应用程序,但如果您需要安装程序,则不需要安装程序。请为每个目标平台使用首选安装机制,以确保为您的客户提供最少的问题。
是的我知道这个建议很糟糕。但是部署也是一项重要的开发活动,总是(并且我担心总是会)比最初希望的更加复杂和容易出错。