Rimozione della lingua predefinita in un assieme e spostarlo in un satellite di assemblaggio
-
01-10-2019 - |
Domanda
Ho un Net 3.5 domanda scritta per lo più in C # che utilizza RESX file per memorizzare i dati di internazionalizzazione per diverse lingue, costituito da stringhe, le dimensioni di controllo e le posizioni, ecc Quello che sto cercando di capire è questo: è possibile compilare la mia applicazione in modo tale che i dati della cultura di default sarà tirato fuori in un satellite di montaggio più o meno allo stesso modo in cui gli altri dati di cultura?
Sto cercando di prevenire situazioni in cui l'utente utilizza il software in un unico (non predefinita) la lingua, rimuove la cartella cultura nella directory bin, e poi ha accesso alla lingua predefinita ??strong> .
Se questo è impraticabile o impossibile a causa di limitazioni quadro, è possibile forse di compilazione in una lingua diversa da quella predefinita ??strong>, in modo che io possa dare un'unica versione, non predefinita dell'applicazione per l'utente?
Grazie mille per le vostre risposte.
Soluzione
Ho fatto qualcosa di simile a pochi giorni fa, perché ho bisogno di tutte le assemblee della mia app per avere accesso alle stesse risorse. Hai solo bisogno di creare un assembly separato che contiene le risorse, e fare riferimento a esso dalle assemblee del vostro app. Si noti che se si fa questo, la risorsa assemblea non sarà un Satellite di montaggio:. Si willbe esplicitamente riferimento da altri assembly, e l'applicazione non si avvia affatto se non è presente
Si noti inoltre che per default le classi risorse generate da Visual Studio sono interni. Per renderle pubbliche, è necessario sostituire il ResxFileCodeGenerator
strumento personalizzato con PublicResxFileCodeGenerator
.