我是 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>
一些忠告根据经验:
- 每个组件使用一个文件,这样可以避免各种问题(例外:多文件 .net 程序集应放在一个组件中。也可能存在其他例外,但作为一般规则:每个组件一个文件)。
- 将快捷方式添加到它们引用的文件所在的同一组件。在您的情况下,这意味着将 FCONStartMenuShortcut 移动到 FCONUCClient.exe 组件。
- 仅检查每个组件的密钥文件以确定是否应安装整个组件。当您将多个文件放入同一组件中时,这意味着如果未升级密钥文件,则升级中不会更新任何文件。这违反了微软的最佳实践规则(组件规则)。
请浏览一下这些网站,以帮助您评估该技术:
- http://wix.tramontana.co.hu/
- http://wixtoolset.org/documentation/manual/v3/main/wix_learning.html
-
http://www.codeproject.com/Tips/105638/A-quick-introduction-Create-an-MSI-installer-with (nice 基于代码的一、对于“修补匠“ 取得良好的开端)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)