Domanda

Ho un'applicazione che produce file. Vorrei collegare quei file con l'applicazione in modo che il doppio clic sul file avvii la mia applicazione.

Tutto funziona correttamente, tranne per il fastidio che l'icona ha lo stesso aspetto dell'icona della mia applicazione. Vorrei avere un'icona per l'applicazione e un'icona per i suoi documenti.

Il valore DefaultIcon nel registro richiede " app.exe, 1 " sintassi dove 1 è l'indice delle icone. Sembra che le risorse .NET non siano risorse Win32.

Ho provato a seguire ma senza successo:

  1. Selezione di " Embedded Resource " come azione di compilazione del file.
  2. Aggiunta dell'icona al file di risorse.

L'unica cosa che ha funzionato è avere il file icona separato dall'eseguibile e puntare ad esso. Tuttavia, mi sembra una resa.

Qualche idea su come risolverlo?

È stato utile?

Soluzione

Hai provato a impostare 2 come indice delle icone?

EDIT: Ho trovato un modo, ma devi farlo di nuovo per ogni nuova build.

  1. Apri il file .exe in Visual Studio (File - > Apri file)
  2. Fai clic con il pulsante destro del mouse sulla cartella delle icone e seleziona Aggiungi risorsa
  3. Fai clic sul pulsante Importa
  4. Seleziona il tuo file .ico
  5. Potrebbe essere necessario pasticciare con i numeri delle icone, penso che il numero più basso (esempio 101) sarà l'icona dell'applicazione
  6. Ricorda il nuovo numero dell'icona e impostalo come indice

MODIFICA 2: Prova questo articolo: http://www.codeproject.com/KB/dotnet/embedmultipleiconsdotnet. aspx

Altri suggerimenti

Se si utilizza il set di strumenti Wix ( http://www.wixtoolset.org ) per installare l'applicazione , puoi far sì che Wix si occupi del tipo di file e della registrazione dell'icona del documento

Ecco il mio incantesimo magico di Wix:     

    <!-- 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 accetta anche un percorso per un file .ico valido come icona.

Devi assicurarti di avere icone Win32 nel tuo progetto non solo icone .net. SPERO che qualcuno indichi un modo semplice per farlo, ma nel frattempo qui va ...

Compila il tuo assembly, quindi da Visual Studio seleziona " File - > Apri - > Apri file " ;, apri l'assembly compilato. Aggiungi l'icona che desideri utilizzare per i documenti e imposta il suo ID su qualcosa sopra quello in uso per la tua app. Salva il gruppo. Ora hai risorse Win32 disponibili.

- Modifica -
Dopo aver modificato il suo post, ZippyV sembra avere un'ottima risposta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top