开发者

Including a fragment of WSX file

I am separating out logical sections into fragment *.wxs files, but how do I include them in my main Product.wxs using Votive and Visual Studio? I am referencing the component in the main wxs file but receive and error that the component is not found. I'm 开发者_运维百科assuming I'm not linking these correctly.

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>


Never mind for some reason I it wasn't linking after I created the new .wxs file in Visual Studio 2008 possibly because it was originally created as a .wxi file.

I excluded and re-included the file, did a clean and build and its working now.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜