2009-03-12 7 views

Antwort

6

So habe ich es gemacht. Ich erklärte:

<Icon Id="Icon.exe" SourceFile="..\Installer\Graph.ico" /> 

vor </Product> und sie als Referenz wie folgt hinzugefügt:

<ProgId Id='myApp.exe' Description='Some description' Advertise='yes' Icon='Icon.exe'> 
      <Extension Id='xyz' ContentType='application/text'> 
      <Verb Id='open' Sequence='10' Command='Open' Argument='"%1"' /> 
      </Extension> 
</ProgId> 
7

AB: http://www.tramontana.co.hu/wix/lesson1.php#1.7

Wenn Ihre Anwendung einen eigenen Datei-Datentyp behandelt, müssen Sie dafür eine Dateizuordnung registrieren. Fügen Sie eine ProgId in Ihre Komponente ein. FileId sollte sich auf das Id-Attribut des File-Elements beziehen, das die Datei beschreibt, die für die Dateien dieser Erweiterung gedacht ist. Beachten Sie die Ausrufezeichen: es wird den kurzen Pfad der Datei statt der lang zurück:

<ProgId Id='AcmeFoobar.xyzfile' Description='Acme Foobar data file'> 
    <Extension Id='xyz' ContentType='application/xyz'> 
    <Verb Id='open' Sequence='10' Command='Open' Target='[!FileId]' Argument='"%1"' /> 
    </Extension> 
</ProgId> 

Um ein Symbol zu diesem Dateityp zugeordnet werden, müssen Sie die entsprechenden Registrierungs angeben Einträge sich in Ihrer Komponente:

<Registry Id='FooIcon1' Root='HKCR' Key='.xyz' Action='write' 
    Type='string' Value='AcmeFoobar.xyzfile' /> 
<Registry Id='FooIcon2' Root='HKCR' Key='AcmeFoobar.xyzfile' Action='write' 
    Type='string' Value='Acme Foobar data file' /> 
<Registry Id='FooIcon3' Root='HKCR' Key='AcmeFoobar.xyzfile\DefaultIcon' Action='write' 
    Type='string' Value='[INSTALLDIR]Foobar.exe,1' /> 
+1

Und was bedeutet das Foobar.exe innerhalb Value = '[INSTALLDIR] Foobar.exe, 1' /> siehe? Und wo liegt es? – Filip

+0

der Link ist ungültig – DonDon

0

würde ich nach meinem Stack-Überlauf Beitrag empfehlen here sich für die einfachste und eleganteste Art und Weise Ikonen der Einbettung in eine Ressource ohne die Notwendigkeit eines C++ - Projekts in einer verwalteten .NET-Anwendung.

Als nächstes hier ist der richtige Weg, dies über Wix zu setzen:

<Component Id="stackoverflowFileRegistration" Guid="MY_GUID"> 

    <RegistryKey Root="HKCR" Key=".stackoverflow" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
     <RegistryValue Value="stackoverflow.Document" Type="string" KeyPath="yes" /> 
     <RegistryValue Name="Content Type" Value="application/stackoverflow" Type="string" /> 
     <RegistryKey Key="ShellNew" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
     <RegistryValue Name="NullFile" Value="" Type="string" /> 
     <RegistryValue Name="Data" Value="Default new document Content.. NOTE: you must use a MutiStringValue nodes for multi-line content...." Type="string"/> 
     </RegistryKey> 
    </RegistryKey> 

    <RegistryKey Root="HKCR" Key="stackoverflow.Document" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
     <RegistryValue Value="stackoverflow Document" Type="string" /> 

     <RegistryKey Key="DefaultIcon" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
     <RegistryValue Value="[INSTALLDIR]bin\stackoverflow.lib.dll, 1" Type="string" /> 
     </RegistryKey> 

     <RegistryKey Key="Shell" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
     <RegistryKey Key="openstackoverflowwebsite" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
      <RegistryValue Value="Open Stackoverflow" Type="string" /> 
      <RegistryKey Key="command" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
      <RegistryValue Value="&quot;[INSTALLDIR]stackoverflow.exe&quot; /openwebsite &quot;%1&quot;" Type="string" /> 
      </RegistryKey> 
     </RegistryKey> 
     </RegistryKey> 

    </RegistryKey> 
    </Component> 

Dieses Beispiel das Symbol Standardregister für eine bestimmte Dateierweiterung (.stackoverflow), dass es in einer Baugruppe aus Schritt 1 befindet zeigt auch, wie Sie mit Windows Explorer verknüpfte Rechtsklickbefehle erstellen und dem Windows Explorer-Untermenü "Neu" ein Menüelement hinzufügen.

Dank

-Blake Niemyjski

+0

Dieser Code funktioniert ab WIX 3.6 ... –

Verwandte Themen