2014-03-13 3 views
9

Lernen, wie man Wix Booloader erstellt, damit ich .NET Framework mit meinem msi-Installationspaket installieren kann. Jedenfalls bin ich mit einem Fehler für ein unbehandeltes Erweiterungselement festgefahren. Code ist unterDas Fragment-Element enthält ein unbehandeltes Erweiterungselement 'util: RegistrySearch'

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
# This comment is generated by WixEdit, the specific commandline 
# arguments for the WiX Toolset are stored here. 

candleArgs: "<projectfile>" -ext WixBalExtension 
lightArgs: "<projectname>.wixobj" -ext WixBalExtension 
--> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> 

<Bundle UpgradeCode="80B0ECBE-CAAE-4B6A-9705-49F0232B0C24" 
     Version="0.0.1"> 
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 
    <Chain> 
     <PackageGroupRef Id="Netfx45" /> 
    </Chain> 
</Bundle> 

<Fragment> 
    <util:RegistrySearch Root="HKLM" 
         Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" 
         Value="Version" 
         Variable="Netfx4FullVersion" /> 
    <util:RegistrySearch Root="HKLM" 
         Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" 
         Value="Version" 
         Variable="Netfx4x64FullVersion" 
         Win64="yes" /> 
    <!-- .NET 4.5 only installed if Vista or higher AND it's not already installed--> 
    <!-- .NET 4.5 only installed if Vista or higher AND it's not already installed-->  
<PackageGroup Id="Netfx45"> 
     <ExePackage Id="Netfx45" 
        Cache="no" 
        Compressed="yes" 
        PerMachine="yes" 
        Permanent="yes" 
        Vital="yes" 
        InstallCommand="/q" 
        SourceFile="C:\Users\ProRip\Downloads\dotnetfx45_full_x86_x64.exe" 
        DetectCondition="(Netfx4FullVersion=&quot;4.5.50709&quot;) AND (NOT VersionNT64 OR (Netfx4x64FullVersion=&quot;4.5.50709&quot;))" 
        InstallCondition="(VersionNT &gt;= v6.0 OR VersionNT64 &gt;= v6.0) AND (NOT (Netfx4FullVersion=&quot;4.5.50709&quot; OR Netfx4x64FullVersion=&quot;4.5.50709&quot;))" /> 
    </PackageGroup> 
</Fragment> 

Fehlermeldung ist

error CNDL0200 : The Fragment element contains an unhandled extension element 'util:RegistrySearch'. Please ensure that the extension for elements in the 'http://schemas.microsoft.com/wix/UtilExtension' namespace has been provided. 
error CNDL0200 : The Fragment element contains an unhandled extension element 'util:RegistrySearch'. Please ensure that the extension for elements in the 'http://schemas.microsoft.com/wix/UtilExtension' namespace has been provided 

Kann jemand bitte erklären, was mein Fehler Ich habe den richtigen Namespace enthalten und ich kann keinen Grund für den Fehler sehen!

+0

Wenn Sie Ihren Code mit Kerze kompilieren, haben Sie '-ext WixUtilExtension'? –

+0

ok Ich habe die -ext WixBalExtension zu WixUtilExtension geändert, aber jetzt habe ich Fehler mit Standard-Bootstrapper-Anwendung Ungelöste Bezug auf Symbol 'WixBootstrapperApplication: WixStandardBootstrapperApplication.RtfLicense' – codem

+0

Sie sollten nicht ersetzen, sondern fügen Sie eine andere Erweiterung. So: '-ext WixUtilExtension, WixBalExtension'. Ich könnte jedoch mit der Syntax verwechselt werden - spielen Sie einfach so lange, bis es funktioniert –

Antwort

26

Die WiX-Erweiterung für den Namespace xmlns:util="http://schemas.microsoft.com/wix/UtilExtension wird von einer DLL namens WixUtilExtension bereitgestellt (vorausgesetzt, Sie verwenden Visual Studio). Klicken Sie mit der rechten Maustaste auf den Knoten Verweise in Ihrem Projekt und fügen Sie einen Verweis auf die WixUtilExtension-DLL hinzu.

+1

Danke. Ich werde hinzufügen, dass Sie in der Lage sein können, diese DLLs von nugget auch zu bekommen. Das hilft bei meinem Build Maschine, wo ich Wix nicht installiert habe (wie ich es lokal getan habe) – granadaCoder

Verwandte Themen