Domanda

Al fine di fare uso di GetGlobalResourceObject() in Visual Studio 2008 che devo copiare un file RESX nelle App_GlobalResources cartella di Visual Studio. Dopo l'applicazione è precompilata, i file di risorse vengono compilate in assemblee satellitari corrispondenti e distribuiti sotto la cartella \bin\ da nomi della cultura. Tutto questo funziona bene.

Tuttavia, sono in grado di aggiungere nuovi assembly satellite dopo l'applicazione è stata precompilata. Quello che ho fatto è stato:

  1. 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

  2. Creata \bin\es-ES\ cartella e distribuito il file dll lì.

Purtroppo, l'assembly satellite appena aggiunto è non essere riconosciuto dal GetGlobalResourceObject(), che cade di nuovo nella risorsa predefinita (inglese). Sembra che ci sia niente di sbagliato con il file di risorse, perché se copio lo stesso file RESX in App_GlobalResources e quindi compilare l'applicazione, tutto funziona bene.

Che cosa mi manca? BTW il mio tipo di progetto è il sito web e non progetto di applicazione web.

È stato utile?

Soluzione

(Da Il commento di @ksa)

Una cosa che può andare male è un percorso dello spazio dei nomi non corretta nella DLL prodotto da resgen, è possibile utilizzare ILDASM o Reflector per confrontare gli spazi dei nomi nelle DLL di lavoro e le generati DLL non di lavoro. È quindi possibile modificare la riga di comando per generare resgen con lo spazio dei nomi corretto.

Altri suggerimenti

Prova agganciando alla manifestazione AssemblyResolve in AppDomain.CurrentDomain e vedere se è actualy cercando per il montaggio. Se non cercarlo, tutto quello che dovete fare è tenere un elenco di assembly caricati dinamicamente ed i loro percorsi.

Una nota circa AssemblyResolve, se non si ha l'assemblea, restituire null. Questo è il comportamento di default.

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