【问题标题】:Warning in Wix SetupWix 设置中的警告
【发布时间】:2014-04-09 09:25:42
【问题描述】:

我是 Wix 工具包的新手。我正在为我的应用程序使用 Wix Toolkit 创建一个设置。 但是当我尝试使用 Wix 构建它时。它显示此警告。

C:\Users\BNK\Desktop\wix - popup\setup.wxs(60):警告 LGHT1076: ICE69:不匹配的组件参考。条目“FCONStartMenuShortcut” 快捷方式表属于组件“FCONShortcut”。然而, 列“Tar get”引用文件中的格式化字符串 属于组件“FCONUCClient .exe”的“FCONUCClient.exe”。 组件具有相同的功能。

谁能告诉我我的代码有什么问题? 这是 Wix 设置代码...

<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' >

  <Product Name='FCON UC Client 1.0.9' Id='PUT-GUID-HERE' 
          UpgradeCode='PUT-GUID-HERE'
          Language="'1033'" Codepage='1252' Version='1.0.9' 
          Manufacturer='BNK Systems JLT' >
    <!-- Product Info-->

    <Package Id='*' Keywords='Installer' Description="FCON UC Client 1.0.9"
      Comments='All Rights Reserved BNK Systems JLT.' 
      Manufacturer='BNK Systems JLT' InstallerVersion='100' Languages='1033'
      Compressed='yes' SummaryCodepage='1252' />
    <!-- Package Info-->
    <Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt='CD-ROM #1' />
    <!-- Setup is CDROM Installer Package-->
    <Property Id='DiskPrompt' 
              Value="BNK Systems JLT FCON UC Client Installation" />
    <!-- Definition for DiskPrompt used in Media above -->

    <Directory Id="TARGETDIR" Name="SourceDir">
      <!--  Directory Structure Root -->
      <Directory Id="ProgramFilesFolder">
        <!-- Install the Package in Program Files Folder -->
        <Directory Id="APPLICATIONROOTDIRECTORY" Name="BNK Systems">
          <!-- Create a Folder namely BNK Systems  inside Program Files ; Id APPLICATIONROOTDIRECTORY can be defined later-->
          <Directory Id="APPLICATIONFILEDIRECTORY" Name="FCON UC Client">
            <!-- Create a Folder namely FCON UC Client inside BNK Systems; Id APPLICATIONFILEDIRECTORY can be defined later -->

          </Directory>
        </Directory>
      </Directory>

      <Directory Id="ProgramMenuFolder">
        <!-- Program Files StartMenu Folder-->
        <Directory Id="FCONStartMenuFolder" Name="BNK Systems"/>
      </Directory>
    </Directory>

    <DirectoryRef Id="APPLICATIONFILEDIRECTORY">
      <!-- Definition of Directory APPLICATIONFILEDIRECTORY  -->
      <Component Id="FCONUCClient.exe" Guid="*">
        <!-- Application files & settings to be installed goes here-->
        <File Source="FCON UC Client.exe" KeyPath="yes" Checksum="yes"/>
        <File Source="Asterisk.NET.dll" />
        <File Source="Dotnetrix.TabControl.dll" />
        <File Source="FCON UC Client.exe.manifest" />
        <File Source="jabber-net.dll" />
        <File Source="muzzle.dll" />
        <File Source="netlib.Dns.dll" />
        <File Source="zlib.net.dll" />
        <File Source="inittrial.exe" />
     </Component>
    </DirectoryRef>

    <DirectoryRef Id="FCONStartMenuFolder">
      <Component Id="FCONShortcut" Guid="*">
        <Shortcut Id="FCONStartMenuShortcut"
                     Name="FCON UC Client 1.0.9"
                   Description="FCON UC Client 1.0.9"
                    Target="[#FCONUCClient.exe]"
                          WorkingDirectory="APPLICATIONFILEDIRECTORY"/>
       <RemoveFolder Id="FCONStartMenuFolder" On="uninstall"/>

       <RegistryValue Root="HKCU" Key="Software\Microsoft\FCONUCClient" 
                      Name="installed" Type="integer" Value="1" KeyPath="yes"/>

      </Component>
    </DirectoryRef>

    <!-- Step 3: Tell WiX to install the files -->
    <Feature Id="InstallFCON" Title="FCON UC Client 1.0.9" Level="1">
      <ComponentRef Id="FCONUCClient.exe" />
      <!--<ComponentRef Id="documentation.html" />-->
      <ComponentRef Id="FCONShortcut" />
    </Feature>

  </Product>
</Wix>

【问题讨论】:

    标签: wix installation windows-installer wix3.7


    【解决方案1】:

    一些建议来自经验:

    • 每个组件使用一个文件,这样可以避免各种问题(例外:多文件 .net 程序集应该放在一个组件中。也可能有其他例外,但作为一般规则:每个组件一个文件) .
    • 将快捷方式添加到它们引用的文件所在的同一组件。 在您的情况下,这意味着将 FCONStartMenuShortcut 移动到 FCONUCClient.exe 组件。
    • 仅检查每个组件的密钥文件以确定是否应安装整个组件。当您将多个文件放在同一个组件中时,这意味着如果未升级密钥文件,则不会在升级中更新任何文件。这违反了 Microsoft 的最佳实践规则(组件规则)。

    请浏览一下这些网站,以帮助您评估技术:

    【讨论】:

    • 您好,我尝试了您的建议。第一个,警告没有任何区别......在第二个我有一些疑问,如果我将快捷方式移动到应用程序文件组件,快捷方式将放置在哪里?我想要它在开始菜单中,谢谢
    • 您需要在 Shortcut 元素中添加“Directory”属性并指定快捷方式的位置。请参阅:wixtoolset.org/documentation/manual/v3/howtos/…wixtoolset.org/documentation/manual/v3/xsd/wix/shortcut.html
    • 好的,所以,我在开始菜单中使用Directory创建目录,并使用Directory属性指定快捷方式内的路径?
    • 快捷方式实际上会指向 Target。尝试在您的 Wix 二进制文件文件夹中搜索 WiX.chm。搜索 Shortcut 元素,您应该可以轻松访问所需的属性信息
    猜你喜欢
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 2012-06-29
    相关资源
    最近更新 更多