【问题标题】:How to Create Installer For EXE Files With Multiple Destination Path for files如何为具有多个文件目标路径的 EXE 文件创建安装程序
【发布时间】:2015-12-18 04:16:59
【问题描述】:

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

情况

  1. 在安装开始时,它应该询问主安装路径。或者应该从一些 Autorun 或 Ini 文件中选择该路径
  2. 所选路径将具有不同的目标文件夹。安装实用程序应将文件部署到其目标文件夹。例如file1 应该转到 \File_Conf 文件夹...File2 应该转到 \business_Rules 文件夹

我发现了一个有趣的工具WIX。我仍在深入研究它的细节。 有没有人处理过同样的要求,任何提示都可以。 据我了解,我们无法在 VS Setup 项目中嵌入自定义脚本。 InstallSheild 对它有好处,但它已获得许可。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我实际上想要“文件夹”属性作为动态属性。目标 m/c 上已存在文件夹。此安装应将内容粘贴到其中。我知道普通的win exe可以做到。但我不想向部署用户公开配置文件。
    • 这意味着您的 /File_Conf,/​​Business rules 目录是动态的。在安装时,您将从某个配置文件中获取它并相应地复制文件。对吗?
    • 是的...这就是我要找的
    • 我已经根据要求编辑了我的答案,没有代码。
    【解决方案2】:

    您可以通过定义不同的目录然后在“组件列表”中引用它们来做到这一点。您可能需要提供一个 GUI,用户可以在其中为单独的组件(在本例中为 DOCUMENTATION)定义他/她的 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 文件(由热量创建)。 Component 和 File 元素不如结构重要(Directory

    <?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>
    

    【讨论】:

    • 感谢您的回答。很有帮助
    猜你喜欢
    • 2021-01-01
    • 2021-06-20
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    相关资源
    最近更新 更多