سؤال

أقوم بفصل الأقسام المنطقية إلى ملفات Fragment *.wxs ، لكن كيف يمكنني تضمينها في منتجي الرئيسي. أنا أشير إلى المكون في ملف WXS الرئيسي ولكن تلقي وخطأ لم يتم العثور على المكون. أفترض أنني لا أربطها بشكل صحيح.

Error 13 Unresolved reference to symbol 'Component:RegistryEntries' in section 'Product:{A5CA93A2-91B2-46CA-B681-07451DCCCDCB}'.

<ComponentRef Id="RegistryEntries"/>

registriStettings.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>
هل كانت مفيدة؟

المحلول

لا تهتم لسبب ما أنني لم أكن مرتبطًا بعد أن قمت بإنشاء ملف .wxs الجديد في Visual Studio 2008 ربما لأنه تم إنشاؤه في الأصل كملف .wxi.

لقد استبعدت وأعادت توصيل الملف ، وقمت ببناء ونظيفة وعمله الآن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top