2016-12-10 87 views
0

使用Wix 3.10.2复制许可证文件?我们有一个要求,就是在安装web应用程序到IIS之后,我们需要复制一些许可证文件。许可证文件的复制将是序列中的最后一个。许可证文件将位于刻录(引导程序)setup.exe旁边。这样我们就可以根据用户来控制需要安装的许可证文件。我试图了解许可证文件的数量是否与.exe一起存在问题?是否有自定义操作选择不属于msi或exe的文件?Wix刻录文件松散安装

回答

0

您可能需要更准确地确定要在何时发生副本。您的原始问题是“安装后”,这意味着安装已完成,并且您生成的MSI不再运行。但在稍后的评论中你会说“在安装过程中”。

如果安装后是你想要的,那么你可以添加一个自定义的可执行文件到你的刻录包,它可以做任何你想要的。在许多这种情况下,需要该文件的应用程序只需在MSI的帮助下说出它的安装位置,或者使用Windows Installer的SourceList功能来获取位置。

如果您想在安装过程中复制文件,那么CopyFile元素可能就是您需要的。它具有通配符功能来定义要复制的文件。您的源位置将是SourceDir属性,目标将是您定义的目录之一。请注意,产品卸载后,这些文件将不会被卸载。

威克斯的CopyFile:

http://wixtoolset.org/documentation/manual/v3/xsd/wix/copyfile.html

+0

我已经更新了我的第一个问题以澄清。许可证文件是安装的一部分。但是它是在序列的最后完成的。我想向你确认,如果我们需要全部*。lic文件作为msi编译的一部分,用于CopyFile元素的工作? – varun7447

+0

是的,它的工作原理就是这样。作为一项测试,我刚刚使用MSI旁边的* .txt将两个.txt文件复制到主安装文件夹中。 – PhilDW

+0

我想用CopyFile做这样的事情:' ' – varun7447

1

1)不会有与EXE

2位于沿的许可文件数)使用媒体元素没有内阁的名称,你可以指定某些文件既不是驾驶室内或嵌入到一个问题msi,无需自定义操作。请参阅http://wixtoolset.org/documentation/manual/v3/xsd/wix/media.html

+0

感谢您的指针。但是,我是否必须每次都将许可证文件作为刻录项目的一部分进行编译?我可以使用某种脚本驻留在exe文件中,它将查找与exe相同的目录中的任何许可证文件,以将它们复制到安装目录。这样用户可以在安装之前复制所需的许可证文件并执行该exe文件。 – varun7447

+0

Windows安装程序旨在知道哪些文件正在安装,以便它可以在必要时正确修复,回滚和卸载它们。一个能够复制任何通用文件的安装程序会首先打破使用Windows Installer的设计和好处。你可能会更好地使用不同的技术。编写可正确安装,回滚,卸载和修复通用文件的自定义操作将非常困难。 – tjleigh

+0

是的,很难相信像Wix这样的工具无法在从源目录安装期间基于扩展名执行简单的复制文件。 – varun7447

0

我不得不使用随Visual Studio的SDK原生的引导。通过引导程序,您还可以创建安装.net等前提条件。这适用于我的要求。此外还有一个msbuild任务,以便您可以自动执行它。使用安装项目创建MSI和VS引导来创建setup.exe