如何为具有多个文件目标路径的EXE文件创建安装程序

时间:2015-12-18 04:17:00

标签: c# .net visual-studio-2010 installation wix

我有一个小要求。我必须创建一个安装程序,将部署(粘贴嵌入的txt和配置文件)文件到不同的位置

情况

  1. 在安装开始时,它应该询问主安装路径。或者应该提供从某些Autorun或Ini文件中选择该路径
  2. 所选路径将具有不同的目标文件夹。安装实用程序应将文件部署到其目标文件夹。例如。 file1应该转到\ File_Conf文件夹... File2应该转到\ business_Rules文件夹
  3. 我找到了一个有趣的工具WIX。我仍在深入研究它的细节。 有没有人有同样的要求任何提示都没关系。 根据我的理解,我们无法在VS安装项目中嵌入自定义脚本。 InstallSheild很适合它,但它是许可的。

2 个答案:

答案 0 :(得分:0)

我认为你可以保留所有文件和配置文件位于应用程序目录的一个临时目录中,您可以添加自定义操作安装程序,您可以根据config / ini文件将文件从临时目录移动到所需目录。在安装结束时,您可以删除临时目录。从我的希望,这可能是解决方案。可能有一些其他优化方式这样做。我没有时间用代码解释。

答案 1 :(得分:0)

您可以通过定义不同的目录,然后在"组件列表"中引用它们来完成此操作。您可能需要提供一个GUI,用户可以在其中为单独的组件定义他/她的INSTALLFOLDER(在本例中为DOCUMENTATION)。

如果您需要更多信息,请与我们联系。

<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&lt; Component&lt; 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>