Problemi durante il porting a Visual Studio 2010

 

Il porting a Visual Studio 2010 sostituisce automaticamente l’uso del Framework 3.5 con il 4.0 in sede di compilazione. Possiamo rinunciare a questa conversione semplicemente andando nelle proprietà di ogni progetto, scegliendo la Tab “Compilazione” quindi “Opzioni di compilazione avanzate” scegliendo “Framework 3.5” nel campo “Framework di destinazione”, tuttavia se decidiamo di utilizzare la versione più evoluta dobbiamo ricordarci alcuni punti :

System.XAML

Alcuni assembly sono stati riorganizzati pertanto se il nostro progetto usa Wpf dobbiamo inserire nei progetti il riferimento a System.XAML . Questa informazione ci viene evidenziata anche nella lista di errori.

System.Reflection.Assembly.UnsafeLoadFrom

Il framework 4.0, al contrario delle versioni precedenti, di default considera non sicuri gli assembly che risiedono sulla rete anche se posizionati all’interno di una cartella con diritti fulltrust. Questo comporta che utilizzando la reflection per accedere ad un assembly durante il caricamento per mezzo del metodo LoadFrom potremmo ricevere l’ errore :

{"Could not load file or assembly ‘file:///[nome_assembly]’ or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)":"file:///[nome_assembly]"}

Per fare funzionare il tutto come nella versione precedente occorre sostituire il comando :
System.Reflection.Assembly.LoadFrom
Con  il comando :
System.Reflection.Assembly.UnsafeLoadFrom

Riferimenti non disponibili

Il nuovo ambiente è più “permaloso” e non ci consente di compilare un assembly se al suo interno ci sono riferimenti ad assembly non presenti sul PC. Questa nuova caratteristica lascia spiazzati in quanto non viene data nessuna segnalazione. Semplicemente non viene compilato, e quindi distribuito, l’assembly. Per evitarci qualche mal di testa è fondamentale togliere tutti i riferimenti che non sono disponibili sul nostro PC. Per quanto riguarda Gea.Net, questo problema potrebbe essere causato da ClsB_Office che ha il referimento a Microsoft.Office.Core, MSProject, MSPWIFLib, Excel, ecc. La cosa è particolarmente noiosa se ci capita di cambiare spesso ambiente o postazione di lavoro. Attenzione quindi a non esagerare. Non togliere riferimenti che vengono usati dal progetto solo perchè inavvertitamente è stata cancellata l’assembly o perchè si è su un PC non di sviluppo.

Ricompilare la soluzione

L’ultimo è il consiglio della nonna per evitare di perdersi in un bicchiere d’acqua. Se sono state eseguite alcune modifiche ad assembly agganciati a progetto principale è bene ricompilare ogni singolo progetto modificato oppure fare un "Ricompila Soluzione". Se siamo intervenuti agganciando o sganciando riferimenti ma non abbiamo apportato modifiche ai file del progetto, VS2010 non ricompila di sua iniziativa.

Lascia un commento

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: