installation - WiX:如何在外部设置属性?

标签 installation wix windows-installer properties

在我的 WiX 安装程序中,我有一个用于写入注册表项的 UserID 的属性:

<Property Id='UserID' Value='123' />

<Directory Id='TARGETDIR' Name='SourceDir'>
    <Component Id='UserIDComponent' Guid='*'>
        <RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' 
                       Type='integer' Value='[UserID]' Name='UserID' />
    </Component>

我想将该属性的值设置为即时下载我的安装程序的人的用户 ID。因此,当他们去下载时,我将创建每个人都获得的基本 MSI 的副本,将 UserID 的值设置为下载文件的人的值,这就是他们下载的内容。这将是每个人都获得的相同安装包,但为他们设置了属性自定义。

不过,我似乎找不到任何有关如何从外部来源设置 WiX MSI 属性的资源。我怎样才能做到这一点?

最佳答案

据我记得,您确实可以从“外部”设置属性-属性名称必须全部大写才能被识别为公共(public)属性(不要问我为什么....)然后您可以设置它是这样的:

msiexec /i C:\Example.msi PROPERTY=VALUE

例如在你的情况下
msiexec /i C:\Example.msi USERID=somevalue

MSDN docs关于使用 MSIEXEC 的命令行选项

关于installation - WiX:如何在外部设置属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2365197/

相关文章:

tomcat - Apache Syncope - 使用 Tomcat8.5.24 安装

WiX 更改默认 UI 元素的大小

wix - WIX 生成的 MSI 不复制可执行文件,复制其他文件,以前工作过

powershell - 如何防止MSI错误:正在安装另一个程序?

c++ - 安装程序修改了哪些 DLL 和注册表项?

c# - Visual Studio 2010 安装项目中的 "Runtime Implementation from ASSEMBLE NAME"是什么? (vs 2015 中的安装程序扩展设置项目)

installation - 搜索包时在 Atom 中“获取 i.filter 不是函数”

c++ - 如何在 Windows 上为 Visual Studio 2005 设置 wxwidgets

reporting-services - 将文件从 x86 msi 安装到 x64 "Program Files"

msbuild - 如何将 WIX 项目中二进制文件的输入路径设置为 TFS 上的 MSBuild 输出路径?