如何在Wix安装程序中从命令行参数定义安装文件夹

时间:2014-06-17 14:42:03

标签: wix installer windows-installer wix3

我使用以下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

非常感谢。

2 个答案:

答案 0 :(得分:4)

<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

答案 1 :(得分:1)

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

此功能允许您停止生成自己的GUID,让Wix在&#34; 自动&#34;办法。我还没有对它进行过测试,但任何让你的源文件更清洁,更短,更易于维护的东西都值得一试。它还可以更轻松地共享Wix片段,而无需人们重复使用您生成的GUID。

也许还可以看看:

关于属性还有一件事。通常,可以在命令行上设置所有 PUBLIC属性(大写)。如果要在延迟模式自定义操作中使用这些属性,则需要查看restricted public propertiesSecureCustomProperties property的概念。一些Installshield info也是。还有一个很好的old Wise article