Wix 设置中的警告
Posted
技术标签:
【中文标题】Wix 设置中的警告【英文标题】:Warning in Wix Setup 【发布时间】: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>
【问题讨论】:
【参考方案1】:一些建议来自经验:
每个组件使用一个文件,这样可以避免各种问题(例外:多文件 .net 程序集应该放在一个组件中。也可能有其他例外,但作为一般规则:每个组件一个文件) . 将快捷方式添加到它们引用的文件所在的同一组件。 在您的情况下,这意味着将 FCONStartMenuShortcut 移动到 FCONUCClient.exe 组件。 仅检查每个组件的密钥文件以确定是否应安装整个组件。当您将多个文件放在同一个组件中时,这意味着如果未升级密钥文件,则不会在升级中更新任何文件。这违反了 Microsoft 的最佳实践规则(组件规则)。请浏览一下这些网站,以帮助您评估技术:
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(很好的基于代码的,让“修补匠”有一个良好的开端)【讨论】:
您好,我尝试了您的建议。第一个,警告没有任何区别......在第二个我有一些疑问,如果我将快捷方式移动到应用程序文件组件,快捷方式将放置在哪里?我想要它在开始菜单中,谢谢 您需要在 Shortcut 元素中添加“Directory”属性并指定快捷方式的位置。请参阅:wixtoolset.org/documentation/manual/v3/howtos/… 和 wixtoolset.org/documentation/manual/v3/xsd/wix/shortcut.html 好的,所以,我在开始菜单中使用Directory创建目录,并使用Directory属性指定快捷方式内的路径? 快捷方式实际上会指向 Target。尝试在您的 Wix 二进制文件文件夹中搜索 WiX.chm。搜索 Shortcut 元素,您应该可以轻松访问所需的属性信息以上是关于Wix 设置中的警告的主要内容,如果未能解决你的问题,请参考以下文章