如何使用 WiX 安装程序更改添加/删除程序名称?

Posted

技术标签:

【中文标题】如何使用 WiX 安装程序更改添加/删除程序名称?【英文标题】:How to change add/remove program name using WiX Installer? 【发布时间】:2014-10-02 07:48:27 【问题描述】:

我正在构建一个 WiX 项目来安装自定义包。我的产品如下所示:

<Product
    Name="My custom project"
    ... />

因此,当我使用 WiX 安装程序时,我可以在我的屏幕上看到 Selected name,每当 Wix 使用该名称进行显示时。

add/remove 程序下,我可以看到在 Name 标记下指定的相同名称。但我希望它看起来不一样,因为:

My custom project v1.0

据我所见,正如 Rob Menching 提到的 here,这样做的方法是修改我的 .wxs 屏幕文件以修改 [ProductName] 标记并将其替换为我自己的选择。

我想知道是否有更简单和更短的方法,例如,使用我的自定义 ARPINFO 配置,如发布的 here 修改出现在 添加/删除程序列表下的名称>.

有人知道怎么解决吗?

【问题讨论】:

比修改 ProductName 更短的方法?目前尚不清楚这里的问题是什么。 ProductName 是您使用的,其余的 ARP 信息是链接上的那组属性。 这是标准的 Windows Installer 行为——与 WiX 创建的表或 WiX 提供的操作无关。您可以使用ARPSYSTEMCOMPONENT 隐藏整个条目并单独创建自己的条目。但是你确定这是一个经过验证的要求吗? 【参考方案1】:

我找到了解决这个问题的方法。您可能会发现它在您的场景中也很有用。 对于这种方法,您必须编辑 wixproject 文件,即 YOURPROJECT.wixproj。 编辑PropertyGroup 标签下的Name 属性。

        <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>        
        <OutputName>YOURAPP.$(ProductVersion)</OutputName>
        <OutputType>Package</OutputType>
        <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
        <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
 <!--<This name will be displayed under your add remove program.>-->
        <Name>YOURAPP</Name>
        <!--<This is used for Product Display Name.>-->
        <Cultures>;</Cultures>
      </PropertyGroup>

【讨论】:

这基本上是你的项目名称。当 .wxi 文件中 Product 标签的 Name 属性动态更新时,在这种情况下,您的应用程序名称将不会来自产品标签,因此这是在添加/删除程序中更新产品名称的选项。如果您需要任何帮助或更多解释,请发表评论。

以上是关于如何使用 WiX 安装程序更改添加/删除程序名称?的主要内容,如果未能解决你的问题,请参考以下文章

WIX RemoveFolder 问题

WiX:更新“添加/删除程序”中显示的版本号

如何从包含多个 MSI 的 wix 自定义引导程序包中安装/卸载单个 msi,例如安装项目的添加/删除功能?

Wix延迟自定义操作访问被拒绝

如何在升级过程中运行捆绑包时,如何在WIX(Windows安装程序xml)引导程序项目中将按钮文本更改为“升级”?

Wix Managed Bootstrapper:安装 Net 框架并在添加删除程序中添加条目,即使我们取消产品安装