2013-04-16 58 views
3

我正在尝试为我的应用程序创建一个修补程序。实施所描述的示例here按预期工作。但是,每个版本的文件都存储在不同的目录中。版本1.0文件位于c:sample \ 1.0中,1.1文件位于c:sample \ 1.1中。如果我将文件移动到单个位置,请创建1.0安装程序,修改文件并创建1.1安装程序;火炬的wixmst输出不包含任何差异。当我运行pyro时,我得到:从单个文件位置创建WiX修补程序

warning PYRO1079:cabinet'media1.cab'不包含任何文件。如果此修补程序不包含文件,则可能会安全地忽略此警告。否则,请在第一次构建转换时尝试将-p传递给torch.exe,或者将ComponentRef添加到您的PatchFamily创作中,以将更改后的文件拖入内阁。

这对我来说是一个问题,因为我的项目文件保存在单个git存储库中。我们使用分支和标记来描述版本。正因为如此,我只有一个文件目录。

我对这两个版本都有.msi和.wixpdb。

如何在这种情况下创建我的补丁?

回答

3

Pyro需要访问.wixmst以及旧文件和新文件。如果你只有一组文件(更新或更旧),那么补丁显然不会发现文件差异。这就是你从Pyro获得错误的原因。

如果您使用bindpaths来创建原始.msi文件(及其.wixpdbs),那么您可以使用-bt切换到pyro以及到-bu切换的新路径提供旧路径。如果您没有使用绑定路径,并且您需要重新创建旧文件的旧目录结构并为新文件创建新的目录结构。

如果无法找到新旧文件(绑定路径最佳),则必须执行管理映像类型修补。

+1

我以为.wixmst是diff文件。为什么pyro也需要新旧文件? –

+2

.wixmst仅包含* install *逻辑中的差异。 Pyro需要创建一个包含二进制文件之间区别的内阁。因此,Pyro需要新旧文件来了解哪些文件已更改。 –

+0

我已经获得旧文件和新文件,更新了两个安装程序以使用绑定路径,并使用了-b agruments for pyro。现在pyro给我“错误PYRO0103:系统找不到文件''”。它似乎给安装程序中的每个文件发生此错误。这些文件肯定是在指定的路径。 –

相关问题