2014-12-24 3 views
6

devo distribuire un software con 2 nomi diversi e, ovviamente, con le informazioni di completamento diverso, come il nome, descrizione, società eccCambiare nome dell'applicazione, l'icona e informazioni di montaggio dopo la compilazione

mi sto concentrando per trova il modo più semplice per gestire questo enorme problema cambiando solo il nome/icona EXE compilato/ecc.

Cambiare icona non è un problema, ho trovato un facile script di compilazione. Ma non posso trovare alcun articolo su come cambiare le informazioni di assemblaggio.

  • ho provato con Mono.Cecil ma l'exe risultante è sempre corrotto
  • Ho cercato di creare un nuovo progetto WPF estendendo la classe originale App ma non comincerà a causa delle risorse che non si trovano e altri errori
  • Ho letto migliaia di articoli ma nessuno mi ha aiutato ..

Hai qualche consiglio per me? o almeno un nuovo modo di andare?

+0

Il modo "corretto" sarebbe avere 1 progetto WPF per applicazione, tutti condividono tutto tranne quello che deve essere diverso. Se fatto bene, puoi aggiungere una nuova build indipendente in un paio di minuti. Non fornire una risposta perché sarebbe troppo lungo per SO – Alex

+0

@Alex se sapessi questa cosa, potrei organizzare in modo diverso i progetti, ma dopo diversi anni di sviluppo è troppo difficile organizzare tutto –

risposta

5

Provare a utilizzare preprocessor directives in AssemblyInfo.cs come seguire

#if XYZ 
[assembly: AssemblyTitle("NameXYZ")] 
#elif ABC 
[assembly: AssemblyTitle("NameABC")] 
#endif 

Poi semplicemente creare l'app con due diverse configurazioni (ABC, XYZ).

A quanto ho capito, i descrittori di assieme fanno parte dei metadati che vengono scritti in un assembly durante la compilazione e non possono essere facilmente modificati (potrebbe esserci un modo) successivamente per proteggere i consumatori dell'assembly da qualcuno che potrebbe armeggiare con esso.

+0

Sì, questa potrebbe essere una soluzione, ma Devo complimentarmi (e offuscare) due volte. Speravo che ci fosse una soluzione più veloce .. –

+0

@BastianonMassimo Non penso che tu possa andare in nessun altro modo. Le informazioni sull'assemblaggio (o manifest) sono scritte su un assembly durante la compilazione, ne fanno parte. Inoltre penso che ci sia un hash che descrive tutti i metadati nell'assembly e se si cambia qualcosa al suo interno dopo la compilazione, verrà danneggiato per proteggere i consumatori. –

+0

Sarà molto più doloroso ogni rilascio .. dannazione –

Problemi correlati