2013-02-26 8 views
7

Uso le immagini su alcuni dei miei pulsanti e non voglio che queste immagini siano incluse nell'output.Azione di creazione immagine: differenza tra None e Embedded Resource?

Queste immagini sono impostate tramite le proprietà dei pulsanti, quindi sono definite nel file Resource.resx.

Mi è stato detto di impostare Build Action su Embedded Resource, ma sono curioso di sapere perché questo faccia la differenza. Ho l'azione di compilazione impostata su "Nessuno" in questo momento e nessuno dei file è impostato per la copia. E posso spostare l'applicazione costruita ovunque e avviarla e tutte le immagini mostrano bene. (Giusto per chiarire, le immagini non sono sicuramente nella directory del programma al momento del lancio, e appaiono ancora bene).

Ho cercato sul MSDN e ha ottenuto questo:

Nessuno - Il file non è incluso nel gruppo di output del progetto e non è compilato nel processo di generazione. Un esempio è un file di testo che contiene la documentazione , ad esempio un file Leggimi.

Risorsa incorporata - Questo file è incorporato nell'output di generazione del progetto principale come DLL o eseguibile. Lo standard viene in genere utilizzato per i file di risorse.

Ma da questo sembra che averli tutti impostati su Nessuno non dovrebbe nemmeno funzionare (ma lo è).

Quindi sono curioso di sapere quale vantaggio lo offre a Embedded Resource. L'ho provato e non c'era differenza. Speravo che qualcuno potesse spiegare cosa sta succedendo.

L'unica supposizione è che quando si imposta la proprietà dell'immagine tramite il pulsante e la voce viene aggiunta al file di risorse, non è in alcun modo collegata al file aggiunto al progetto (anche se sono uguali). Pertanto, se si imposta la proprietà dell'immagine in questo modo, non è necessario includere le immagini nel progetto (ad esempio in Solution Explorer).

Grazie!

risposta

8

Sembra che tu sia incappato in due modi diversi di visualizzare un'immagine.

  1. Se si utilizza un file di risorse, allora il file di risorse in sé sarà conterrà le immagini e il file verrà copiato nella directory di output. Sarà quindi fare riferimento l'immagine di questo file di risorse e tutto sarà bene. L'effettiva impostazione dell'immagine per none/embedded/content non è . Ciò consente di creare file di risorse per una varietà di lingue e posizioni e modificare l'immagine utilizzata in base alla cultura delle applicazioni .

  2. L'altro modo per fare riferimento a un'immagine è incorporarlo o impostandolo come contenuto nel progetto. Se lo imposti come contenuto, lo verrà copiato nella directory di output e può essere referenziato fisicamente in base alla posizione o se lo incorpori il file si troverà all'interno di la dll che è stata creata ed è possibile estrarre un flusso di risorse con tale file in esso utilizzando funzioni integrate.

Si utilizza il metodo # 1 in modo una volta che avete messo nel file di risorse non devi averlo nel progetto in quanto il file di risorse è nel progetto già ed è qui che il file verrà vieni da

+0

Grazie. Questo è quello di cui ero confuso. Nella mia testa quando stavo impostando la sorgente dell'immagine tutto ciò che stava facendo era mappare dove l'immagine sarebbe stata quando il programma è stato lanciato. Non stavo afferrando cosa è successo quando è stato aggiunto al file di risorse. Tutto è stato chiarito. – Wrightboy

Problemi correlati