Mi sono appena imbattuto nel comportamento più strano in Visual Studio 2010 mentre lavoravo con i file di risorse Resx e non riesco a capirlo .Visual Studio 2010 non genera il codice di progettazione Resource (Resx) se il file è localizzato
Il problema è il seguente: Visual Studio non genererà il file designer.cs
per un file di risorse con un nome localizzato (ad esempio resource.fr.resx
), ma funziona bene per gli altri file con nomi semplici (come resource.resx
).
Ecco un'istantanea della mia installazione di Visual Studio progetto:
Come potete vedere ho appena fatto un semplice test con i file di risorse 3:
- test.resx
- test2.resx
- test.fr.resx
I file designer.cs
per test.resx
e test2.resx
vengono generati correttamente. Tuttavia, viene creato test.fr.designer.cs
ma sempre vuoto, indipendentemente da ciò che faccio.
Ho il doppio e il triplo controllato: la proprietà dello strumento personalizzato è impostata correttamente per il file localizzato. Tutte le proprietà sono esattamente le stesse su tutti i file (sto usando PublicResxFileCodeGenerator
, ma ottengo lo stesso comportamento se imposto il modificatore di accesso a internal e utilizzo ResxFileCodeGenerator
).
Nota: ho notato che quando viene creato un file di risorse, di default, il modificatore di accesso viene impostato su "Interno". Tuttavia, quando si crea un file di risorse localizzato (resource.fr.resx
), il suo valore predefinito è "Nessuna generazione di codice". Ho appena scoperto che è interessante notare poiché dimostra che visual Studio sta trattando il file localizzato in modo diverso per qualche motivo.
-> C'è qualcosa che mi manca qui? Gradirei se qualcuno avesse qualche idea sull'argomento, questo mi sta facendo impazzire.
Immagino che stavo solo incomprensibilmente come dovrebbe funzionare allora. Tuttavia, il gestore delle risorse non sta trovando le mie stringhe localizzate, che è ciò che mi ha spinto a indagare su tutta questa faccenda. Ma questo potrebbe essere per un'altra ragione.Indagherò di nuovo partendo dal presupposto che non c'è niente di sbagliato con i file di risorse. – Aerendel
Ok, provalo come ho descritto e dovrebbe funzionare. – Larry
Infatti, non ho capito che il framework ha bisogno solo di generare il codice per il file di risorse master che mi ha portato nella direzione sbagliata. Grazie per averlo spiegato e segnalato! Visual Studio si blocca effettivamente sulla generazione di codice per un file che segue la convenzione di denominazione localizzata, che in realtà ha senso. Tutto funziona ora dopo aver cambiato i file localizzati in "No code genration". Molte grazie! – Aerendel