添加/删除程序中的Wix图标

时间:2018-02-08 15:57:02

标签: wix windows-installer

我正在使用Wix来创建我的安装程序。 根据官方documentation,如果我想更改添加/删除程序中的图标,我需要添加:

<Icon Id="icon.ico" SourceFile="MySourceFiles\icon.ico"/>
<Property Id="ARPPRODUCTICON" Value="icon.ico" />

但它不起作用,图标没有改变,我也收到以下警告:

  

C:\用户\ rsheink \家\回购\10里拉\ 10Lira \ TestWiXProject \ Product.wxs(137,0):   警告LGHT1076:ICE36:图标膨胀。图标icon.ico未使用   类,快捷方式或ProgID表,也不用于ARPPRODUCTICON   属性。

我错过了什么?

感谢。 Refael。

修改 根据@harper的优秀建议,这里是MCVE

<?xml version="1.0" encoding="UTF-8"?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:difx="http://schemas.microsoft.com/wix/DifxAppExtension">

  <Product Id="*" Codepage="1252" Language="1033" Manufacturer="Intel Corporation"
           Name="TenLira" UpgradeCode="PUT-GUID-HERE" Version="31.00.0000">

    <Package Comments="Contact:  Your local administrator" Description="TenLira" InstallerVersion="500"
             Compressed="yes"
             InstallScope="perMachine"
             Keywords="Installer,MSI,Database" Languages="1033" Manufacturer="Intel Corporation" Platform="x64" />

    <Media Id="1" Cabinet="my_application.cab" EmbedCab="yes" />

    <MajorUpgrade AllowDowngrades="no"
                  AllowSameVersionUpgrades="no"
                  Disallow="no"
                  IgnoreRemoveFailure="no"
                  MigrateFeatures="yes"
                  Schedule="afterInstallInitialize"
                  DowngradeErrorMessage="A later version of [ProductName] is already installed" />

    <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONROOTDIRECTORY" />
    <UIRef Id="WixUI_InstallDir" />

    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFiles64Folder">
        <Directory Id="PROGRAMFILESSUBDIR" Name="Intel Corporation">
          <Directory Id="APPLICATIONROOTDIRECTORY" Name="TenLira">
            <Directory Id="kmgl" Name="kmgl">
              <Directory Id="kmgl_win10" Name="kmgl_win10" />
            </Directory>
            <Directory Id="tools" Name="tools" />
          </Directory>
        </Directory>
      </Directory>
    </Directory>

    <DirectoryRef Id="tools">

      <Component Id="devcon.exe" Guid="*">
        <File Id="devcon.exe" Source="..\tools\devcon\amd64\devcon.exe" KeyPath="yes" />
      </Component>

    </DirectoryRef>

    <Feature Id="MainApplication" Title="TenLira" Level="1">
      <ComponentRef Id="devcon.exe" />
    </Feature>

    <!--It should set the icon in Add/Remove programs, but it does not works and I don't know why.-->
    <Icon Id="icon.ico" SourceFile="..\TenLira icons\coins\coins.ico" />
    <Property Id="ARPPRODUCTION" Value="icon.ico" />

  </Product>

</Wix>

1 个答案:

答案 0 :(得分:1)

<强>更新

请尝试更改此内容:

<Property Id="ARPPRODUCTION" Value="icon.ico" />

进入这个:

<Property Id="ARPPRODUCTICON" Value="icon.ico" />

我将在下面留下原始答案,因为setup.exe问题可能与其他人有关。

还有一件事:有人告诉我,对话框<UIRef Id="WixUI_Mondo" />在可用的WiX模板中更好。除了这个建议,我没有任何确凿的事实。我没有使用<UIRef Id="WixUI_InstallDir" /> - 只是它可以节省你一些时间。

旧答案

这可能只是大写/小写问题。与icon.ico而不是Icon.ico一样。

正确:

<Icon Id="Icon.ico" SourceFile="MySourceFiles\Icon.ico"/>
<Property Id="ARPPRODUCTICON" Value="Icon.ico" />

错:

<Icon Id="icon.ico" SourceFile="MySourceFiles\icon.ico"/>
<Property Id="ARPPRODUCTICON" Value="Icon.ico" />

在我的测试过程中,我收到了警告,但无论如何,图标在“添加/删除程序”中都有效。 您是否正在制作setup.exe软件包

制作 setup.exe引导程序包时,必须设置Bundle ElementIconSourceFile属性。

保管链接:How to customize icon for Wix custom bootstrapper