Posts
163
Comments
179
Trackbacks
5
Visual Studio 2010, Framework 3.5 e l’errore di compilazione sui RESX

Oggi è saltata fuori una questione piuttosto interessante: nel caso in cui si utilizzi Visual Studio 2010 targettizzando il Framework 3.5 e si sia obbligati a tergettizzare anche la piattaforma x86, potrebbe saltare fuori un errore di compilazione relativo ai file di risorse RESX delle form.

L’errore è facilmente riproducibile con le seguenti indicazioni:

  • Utilizzare ovviamente Visual Studio 2010
  • Creare un progetto A che utilizzi il Framework 3.5
  • Creare un progetto B di tipo Windows Form e referenziare il progetto A. Anche questo progetto devo utilizzare il Framework 3.5.
  • Nella form che viene creata di default aggiungere una imagelist e inserire qualche immagine
  • Cambiare la piattaforma di compilazione da Any CPU a X86
  • Compilare la soluzione

Fatto tutto ciò non dovreste più essere in grado di compilare. Su Connect esiste un item ben definito con descrizione del problema e soluzioni alternative:

http://connect.microsoft.com/VisualStudio/feedback/details/554759/error-in-control-resx-file-when-adding-imagelist

In particolare una nota sulle soluzioni alternative può dare uno spunto per eventuali fix al problema (uno lo trovate anche in allegato su Connect):

After editing the form search the resx for "j00L" on the first line of the imagelists block and change to "j0yL".
You have to do it everytime you make a change though.

Effettivamente facendo questa semplice modifica tutto torna a compilare correttamente. Il problema è che tale modifica va fatta su ogni form in cui viene inserita una Imagelist.

Il problema descritto non si manifesta con il Framework 4.0 o utilizzando come piattaforma di compilazione Any CPU. Nel nostro caso però non possiamo ne usare il Framework 4.0 ne usare Any CPU a causa di librerie esterne che non vengono più caricate correttamente.
Sfruttando il “trucco” precedente ci siamo fatti un programmino che va a “scandagliare” tutti i file RESX del progetto, verifica se contengono delle imagelist e nel caso va ad applicare il fix precedente.
Richiamando il tutto in fase di Prebuild, si torna a lavorare decentemente direttamente con Visual Studio.

Mi piacerebbe sapere se il recente SP1 Beta di Visual Studio 2010 includa già la correzione a questo problema. Qualcuno ha già verificato?

posted on mercoledì 5 gennaio 2011 11:37 Print
Comments have been closed on this topic.
News
Se volete sapere con chi avete a che fare eccomi qui in uno "scatto" lavorativo.

La mia foto

Logo MCAD
Logo MCTS