我将逻辑部分分离为片段* .wxs文件,但是如何使用Votive和Visual Studio将它们包含在我的主要Product.wxs中?我正在引用主wxs文件中的组件,但是接收到错误并且找不到该组件。我假设我没有正确链接这些。
Error 13 Unresolved reference to symbol 'Component:RegistryEntries' in section 'Product:{A5CA93A2-91B2-46CA-B681-07451DCCCDCB}'.
<ComponentRef Id="RegistryEntries"/>
RegistrySettings.wxs
<?xml version="1.0" encoding="UTF-8" ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include $(sys.CURRENTDIR)\Config.wxi?>
<!-- Registry entries -->
<Fragment Id="RegistrySettings">
<DirectoryRef Id="TARGETDIR">
<Component Id="RegistryEntries" Guid="{MY-GUID}">
<!-- Create registry keys and grant user rights -->
<!-- Add Registry Keys and default values as necessary -->
<RegistryKey Root="HKLM" Key="$(var.RegKey)" Action="create">
<Permission User="$(var.DefaultUser)" GenericAll="yes" ChangePermission="yes"/>
</RegistryKey>
<!-- Connection Info registry keys and values -->
<RegistryKey Root="HKLM" Key="$(var.ConnectionRegKey)" Action="create">
<Permission User="$(var.DefaultUser)" GenericAll="yes" ChangePermission="yes" />
<!-- Main Connection settings -->
<RegistryValue Name="SoapURL" Value="$(var.DefaultSoapUrl)" Type="string"/>
</RegistryKey>
...
</Component>
</DirectoryRef>
</Fragment>
</Wix>
Product.wxs
<?xml version="1.0" encoding="UTF-8" ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<!-- Use pre-processor variable to include other wix variable definitions / components -->
<?include $(sys.CURRENTDIR)\Config.wxi?>
<Product Id="a5ca93a2-91b2-46ca-b681-07451dcccdcb"
Name="$(var.ProductName)"
Language="1033"
Version="$(var.ProductVersion)"
Manufacturer="$(var.ProductManufacturer)"
UpgradeCode="$(var.UpgradeCode)">
<Package InstallerVersion="200" Compressed="yes" Keywords='Installer' Description="App Installer"
Languages='1033' SummaryCodepage='1252' />
<!-- Define custom variables for icons and license files -->
<WixVariable Id="WixUILicenseRtf" Value="docs\liscensing.rtf" />
<WixVariable Id="WixUIBannerBmp" Value="images\fplogo1.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="images\fp-setup.bmp" />
<!-- Add Install conditions such as .Net version required and privileges -->
<PropertyRef Id="NETFRAMEWORK35_SP_LEVEL"/>
<Condition Message="This application requires .NET Framework 3.5 SP1. Please install the .NET Framework then run this installer again.">
<![CDATA[Installed OR (NETFRAMEWORK35_SP_LEVEL and NOT NETFRAMEWORK35_SP_LEVEL = "#0")]]>
</Condition>
<Condition Message="You need to be an administrator to install this product.">
Privileged
</Condition>
<Media Id="1" Cabinet="My.cab" EmbedCab="yes" />
<!-- Default to installing for all users / everyone -->
<Property Id="ALLUSERS">1</Property>
<!-- Win64="$(var.Win64)" -->
<Property Id="INSTALLDIR">
<RegistrySearch Id="RegistrySearch" Type="raw" Root="HKLM"
Key="Software\[Manufacturer]\[ProductName]" Name="InstallLocation" />
</Property>
<!-- Add Remove Programs properties -->
<Property Id="ARPPRODUCTICON" Value="MyIcon.exe" />
<Property Id="ARPHELPLINK" Value="$(var.ArpHelpUrl)" />
<!-- Base Install Directory - Define Directory Structures -->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="APPLICATIONFOLDER" Name="MyWix">
<Directory Id="ArchDir" Name="$(var.ArchDir)" />
<Directory Id="LogDir" Name="$(var.LogDir)" />
<Directory Id="TempDir" Name="$(var.TempDir)" />
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="ApplicationProgramsDir" Name="MyWix" />
</Directory>
<Directory Id="DesktopFolder" Name="Desktop" />
</Directory>
<!-- Application Directory and Structure-->
<DirectoryRef Id="APPLICATIONFOLDER">
<Component Id="My.exe" Guid="MYGUID">
<File Id="My.exe.file" Name="$(var.Project.TargetFileName)"
Source="$(var.Project.TargetPath)" DiskId="1" KeyPath="yes" Vital="yes">
</File>
</Component>
</DirectoryRef >
<!-- Features to install, these could include the main exe, help docs, and scanner components -->
<Feature Id="Complete" Title="Product" Description="The complete package"
Display="expand" Level="1" ConfigurableDirectory="APPLICATIONFOLDER">
<Feature Id="MainApplication" Title="Installer Wix" Level="1">
<ComponentRef Id="My.exe"/>
<ComponentRef Id="RegistryEntries"/>
<ComponentRef Id="ApplicationStartMenuShortCut" />
</Feature>
</Feature>
</Product>
</Wix>
答案 0 :(得分:1)
由于某些原因我在Visual Studio 2008中创建新的.wxs文件之后没有链接,可能是因为它最初是作为.wxi文件创建的。
我排除并重新包含该文件,做了一个干净的构建并立即开始工作。