如何为具有多个文件目标路径的 EXE 文件创建安装程序
How to Create Installer For EXE Files With Multiple Destination Path for files
我有一个小 requirement.I 必须创建一个安装程序,它将部署(粘贴嵌入式 txt 和配置文件)文件到不同的位置
情况
- 在安装开始时,它应该要求主安装path.Or应该有从某些自动运行或 Ini 文件中选择该路径的规定
- 所选路径将有不同的目的地 folder.Installation 实用程序应将文件部署到它们的目的地 folders.E.g。 file1 应该转到 \File_Conf 文件夹...File2 应该转到 \business_Rules 文件夹
我找到了一个有趣的工具 WIX。我仍在深入研究它的细节。
有没有人处理过相同的要求,任何提示都可以。
据我了解,我们不能在 VS 安装项目中嵌入自定义脚本。 InstallSheild 很适合它,但它已获得许可。
我认为您可以将所有文件和配置文件保存在应用程序目录中的一个临时目录中,并且您可以添加自定义操作安装程序,通过它您可以根据 [=12= 将文件从临时目录移动到所需目录] 文件。安装结束时,您可以删除临时目录。我希望这可能是 solution.There 可能是其他一些优化的方式 this.I 没有时间用代码解释。
您可以通过定义不同的目录然后在 "Component list" 中引用它们来实现。您可能需要提供一个 GUI,用户可以在其中为单独的组件(在本例中为 DOCUMENTATION)定义 his/her INSTALLFOLDER。
如果您需要更多信息,请告诉我。
<Directory Id="ProgramFilesFolder">
<Directory Id="FirstSubFolder" Name="First Sub Folder">
<Directory Id="SecondSubFolder" Name="Second Sub Folder">
<Directory Id="DOCUMENTATIONFOLDER" Name="Documentation" ComponentGuidGenerationSeed="a9f690d3-22b3-488f-bdac-bb665c25933c"/>
</Directory>
</Directory>
</Directory>
在我的例子中,我们创建了单独的 .wxs 文件(由 heat 创建)。 Component 和 File 元素不如结构重要 (Directory < Component < File)。
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="DOCUMENTATIONFOLDER">
<Component Id="File.pdf" Guid="*">
<File Id="File.pdf" KeyPath="yes" Source="$(var.gatheredDocumentation)\File.pdf" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="DocumentationComponents">
<ComponentRef Id="File.pdf" />
</ComponentGroup>
</Fragment>
</Wix>
我有一个小 requirement.I 必须创建一个安装程序,它将部署(粘贴嵌入式 txt 和配置文件)文件到不同的位置
情况
- 在安装开始时,它应该要求主安装path.Or应该有从某些自动运行或 Ini 文件中选择该路径的规定
- 所选路径将有不同的目的地 folder.Installation 实用程序应将文件部署到它们的目的地 folders.E.g。 file1 应该转到 \File_Conf 文件夹...File2 应该转到 \business_Rules 文件夹
我找到了一个有趣的工具 WIX。我仍在深入研究它的细节。 有没有人处理过相同的要求,任何提示都可以。 据我了解,我们不能在 VS 安装项目中嵌入自定义脚本。 InstallSheild 很适合它,但它已获得许可。
我认为您可以将所有文件和配置文件保存在应用程序目录中的一个临时目录中,并且您可以添加自定义操作安装程序,通过它您可以根据 [=12= 将文件从临时目录移动到所需目录] 文件。安装结束时,您可以删除临时目录。我希望这可能是 solution.There 可能是其他一些优化的方式 this.I 没有时间用代码解释。
您可以通过定义不同的目录然后在 "Component list" 中引用它们来实现。您可能需要提供一个 GUI,用户可以在其中为单独的组件(在本例中为 DOCUMENTATION)定义 his/her INSTALLFOLDER。
如果您需要更多信息,请告诉我。
<Directory Id="ProgramFilesFolder">
<Directory Id="FirstSubFolder" Name="First Sub Folder">
<Directory Id="SecondSubFolder" Name="Second Sub Folder">
<Directory Id="DOCUMENTATIONFOLDER" Name="Documentation" ComponentGuidGenerationSeed="a9f690d3-22b3-488f-bdac-bb665c25933c"/>
</Directory>
</Directory>
</Directory>
在我的例子中,我们创建了单独的 .wxs 文件(由 heat 创建)。 Component 和 File 元素不如结构重要 (Directory < Component < File)。
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="DOCUMENTATIONFOLDER">
<Component Id="File.pdf" Guid="*">
<File Id="File.pdf" KeyPath="yes" Source="$(var.gatheredDocumentation)\File.pdf" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="DocumentationComponents">
<ComponentRef Id="File.pdf" />
</ComponentGroup>
</Fragment>
</Wix>