【问题标题】:How to define installation folder from command line parameter in Wix installer如何在 Wix 安装程序中从命令行参数定义安装文件夹
【发布时间】:2014-08-07 15:18:00
【问题描述】:

我使用以下 wxs 代码将我的应用程序安装到特定文件夹:

<Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
            <Directory Id="INSTALLDIR" Name="CompanyName">
                <Directory Id="SUBDIR" Name="Application Launcher">
                    <Component Id="ApplicationFiles" Guid="*">
                        <File Name="app.exe" Id="AppFile1" Source="app.exe" Vital="yes" />
                    </Component>
                </Directory>
            </Directory>
        </Directory>
</Directory>

我想用命令行给出的参数指定安装文件夹,如下所示:

msiexec.exe /i setup.msi PATH=C:\MyCompany\Folder\ /qn

非常感谢。

【问题讨论】:

    标签: wix installation windows-installer wix3


    【解决方案1】:
    <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder">
                <Directory Id="CompanyFolder" Name="CompanyName">
                    <Directory Id="INSTALLLOCATION" Name="Application Launcher">
                        <Component Id="ApplicationFiles" Guid="*">
                            <File Name="app.exe" Id="AppFile1" Source="app.exe" Vital="yes" />
                        </Component>
                    </Directory>
                </Directory>
            </Directory>
    </Directory>
    

    对于您的安装:

    msiexec /I setup.msi INSTALLLOCATION=C:\Somewhere /qn
    

    【讨论】:

    • @Glytzhkof:你知道,你不得不这样做真是太可悲了。你是对的......可能有很多懒惰的设置开发人员不知道会复制和粘贴该 GUID。
    • 很多初学者似乎对 GUID 的概念不太了解,而使用自动生成解决了我认为的问题。
    • 大多数 installshield / wix 开发人员并没有跟上大量的底层 MSI 技术。我只是想回答被问到的问题。
    【解决方案2】:

    我正在添加作为获得正确链接的答案。您应该查看 Wix 的自动生成 GUID 功能:WIX Autogenerate GUID *?

    此功能允许您停止生成自己的 GUID,并让 Wix 以“自动”的方式处理它们。我还没有测试过它,但是任何让你的源文件更干净、更短、更容易维护的东西都值得尝试。它还可以更轻松地共享 Wix sn-ps,而无需人们重复使用您生成的 GUID。

    也许也可以看看:

    关于属性的另一件事。一般来说,所有PUBLIC 属性(大写)都可以在命令行上设置。如果您想在延迟模式自定义操作中使用这些属性,您需要查看restricted public propertiesSecureCustomProperties property 的概念。还有一些Installshield info。还有一个不错的old Wise article

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      相关资源
      最近更新 更多