Registrieren des Dateityps und benutzerdefiniertes Dokumentsymbol in .NET
Frage
Ich habe Anwendung, die Dateien erzeugt. Ich möchte diese Dateien mit der Anwendung anschließen, damit Doppelklick in Datei meine Anwendung startet.
Alles funktioniert ordnungsgemäß, außer dass das Symbol wie Symbol meiner Anwendung gleich aussieht. Ich möchte ein Symbol für die Anwendung und ein Symbol für seine Dokumente.
Standardicon -Wert in der Registrierung erfordert "app.exe, 1" -Syntax, wobei 1 Icon Index ist. Es scheint, dass .NET -Ressourcen keine Win32 -Ressourcen sind.
Ich habe versucht zu folgen, aber ohne Erfolg:
- Auswählen von "Embedded Resource" als Erstellung der Datei.
- Hinzufügen von Symbol zur Ressourcendatei.
Das einzige, was funktioniert hat, ist die Icon -Datei, die von der ausführbaren Datei getrennt ist und darauf hinweist. Das erscheint mir jedoch wie die Übergabe.
Irgendwelche Ideen, wie man das löst?
Lösung
Haben Sie versucht, 2 als Symbolindex festzulegen?
EDIT: Ich habe einen Weg gefunden, aber Sie müssen es für jeden neuen Build noch einmal tun.
- Öffnen Sie die .exe -Datei in Visual Studio (Datei -> Datei öffnen).
- Klicken Sie mit der rechten Maustaste auf den Symbolordner und wählen Sie Ressource hinzufügen
- Klicken Sie auf die Schaltfläche Importieren
- Wählen Sie Ihre .ICO -Datei aus
- Möglicherweise müssen Sie sich mit den Symbolnummern anlegen, ich denke, die niedrigste Zahl (Beispiel 101) wird das Symbol der Anwendung sein
- Denken Sie an die neue Icon -Nummer und setzen Sie sie als Index fest
Bearbeiten 2: Probieren Sie diesen Artikel aus: http://www.codeprroject.com/kb/dotnet/embedmultipeiconsdotnet.aspx
Andere Tipps
Wenn Sie den Wix Toolset verwenden (http://www.wixtoolset.org) Um Ihre Anwendung zu installieren
Hier ist meine magische Wix -Beschwörung:
<!-- Your executable -->
<File
Id="MaAppExe"
Name="MyApp.exe"
Source="MyApp.exe" KeyPath="yes" >
</File>
<!-- your document icon -->
<File
Id='IconMyAppDoc.ico'
Name='IconMyAppDoc.ico'
Source='$(var.MyApp.ProjectDir)\Resources\Images\Icons\docicon.ico' />
<-- File Extension and associated document icon -->
<ProgId
Id='MyApp.MyAppExtension'
Description='My App Data File'
Icon='IconMyAppDoc.ico'>
<Extension
Id='MyApp'
ContentType='text/plain'>
<Verb
Id='open'
Command='Open'
TargetFile="MyAppExe"
Argument='"%1"' />
</Extension>
</ProgId>
</Component>
DefaultIcon
akzeptiert auch einen Pfad zu einer gültigen .ICO -Datei als Symbol.
Sie müssen sicherstellen, dass Sie Win32 -Symbole in Ihrem Projekt nicht nur .NET -Symbole haben. Ich hoffe, dass jemand eine einfache Möglichkeit hat, dies zu tun, aber in der Zwischenzeit heißt es ... hier geht es ...
Kompilieren Sie Ihre Baugruppe und wählen Sie dann von Visual Studio "Datei -> Öffnen -> Datei öffnen" die kompilierte Montage. Fügen Sie das Symbol hinzu, das Sie für Dokumente verwenden möchten, und setzen Sie seine ID auf etwas über dem, das für Ihre App verwendet wird. Speichern Sie die Baugruppe. Jetzt haben Sie Win32 -Ressourcen zur Verfügung.
-- Bearbeiten --
Nach dem Bearbeiten seines Posts scheint Zippyv eine sehr gute Antwort zu haben.