Per utilizzare GetGlobalResourceObject()
in Visual Studio 2008 è necessario copiare un file .resx nella cartella App_GlobalResources di Visual Studio. Dopo che l'applicazione è stata precompilata, i file delle risorse vengono compilati negli assembly satellite corrispondenti e distribuiti nella cartella \bin\
in base ai nomi delle colture. Tutto funziona bene.Aggiunta dell'assieme satellite in un sito Web preinstallato
Tuttavia, non è possibile aggiungere nuovi gruppi satellite dopo che l'applicazione è stata precompilata. Quello che ho fatto è stato:
Creato un assembly satellite:
resgen resources.applicationresources.es-ES.resx resources.applicationresources.es-ES.resources al/t: lib/cultura : es-ES /embed:resources.applicationresources.es-ES.resources /out:App_GlobalResources.resources.dll
Creata cartella
\bin\es-ES\
e distribuito il file .dll lì.
Purtroppo, l'assembly satellite appena aggiunto non viene riconosciuto dal GetGlobalResourceObject()
, che cade di nuovo nella risorsa predefinita (inglese). Non sembra esserci nulla di sbagliato nel file di risorse perché se copio lo stesso file .resx in App_GlobalResources
e poi compilo l'applicazione, tutto funziona perfettamente.
Cosa mi manca? A proposito, il mio tipo di progetto è un sito Web e non un progetto di applicazione web.
Hai mai trovato una soluzione a questo problema? – splattne
Attualmente molto bloccato con questo me stesso. – Mig
Il problema nel nostro caso era, durante la generazione degli assembly satellite attraverso resgen, il percorso del namespace non era corretto. Abbiamo duplicato la dll satellite generata usando ILDASM, quindi abbiamo corretto e distribuito l'assembly. – ksa