2015-05-06 10 views
13

Sto ricevendo errori di compilazione perché alcune classi che sto utilizzando sono disponibili in "DNX 4.5.1" e non in "DNX Core 5.0".Come cambiare contesto in VS.NET 2015?

L'errore è:

Il tipo o dello spazio dei nomi '[SomeClass]' non è stato trovato.

Nella colonna del progetto della finestra "Elenco errori", vedo DNX Core 5.0.

Nel menu di scelta rapida, DNX 4.5.1 è selezionato. Perché VS.NET tenta di continuare a utilizzare DNX Core 5.0 quando il contesto è 4.5.1?

+0

451 sarà il tuo framework .net proiettato. Non ha nulla a che fare con alcun riferimento nel progetto. Controlla i tuoi riferimenti per assicurarti che sia solo usando la versione 451 del tuo dnx. – paqogomez

+0

Come ho già detto, questo è ciò a cui è impostato il contesto. Ti stai riferendo a qualcos'altro? – 4thSpace

+0

Se stai analizzando "DNX Core 5.0" nella colonna del progetto della finestra Elenco errori, sembra che tu abbia un progetto chiamato "DNX Core 5.0" come parte della soluzione di Visual Studio. – RenniePet

risposta

35

Nel caso in cui alcune persone siano ancora alle prese con questo, è possibile annullare il DNX Core 5.0 rimuovendolo dai riferimenti del framework nel file project.json.

La sezione

"frameworks": { 
    "dnx451": { }, 
    "dnxcore50": { } 
    }, 

Dovrebbe diventare

"frameworks": { 
    "dnx451": { } 
    }, 
+1

Se non stai mirando a piattaforme non Windows, quindi rilascia DNX Core 50 dal file project.json –

+0

Omg Grazie !!! – Iggy

7

Invece di rimuovere completamente DNXCORE50 dal project.json. Come prima, puoi aggiungere un codice specifico per il framework se lo sposti in #if #endif come mostrato nel codice qui sotto. I nomi quadro DNX451 e DNXCORE50 sono simboli noti in realtà indicato come Monikers framework di destinazione (TFMS) e sono gli stessi in tutto il file project.json, i nomi delle cartelle, pacchetti Nuget ecc

Basta applicare un'istruzione condizionale:

public string Index(){ 
    #if DNX451 
     //code logic here for DNX 4.5.1 
    #endif 
    #if DNXCORE50 

     //code logic here for DNX Core 5.0 

    #endif 
} 
+0

Trovato che devi usare questo su istruzioni 'using', nel mio caso' usando MySqlData.MySqlCLient' - mi stavo causando dolore, grazie per questo. – PurpleSmurph

Problemi correlati