2015-08-14 22 views
6

Sto riscontrando un problema con l'ultima versione beta di .net e la libreria Xdocument.asp.net vnext e XDocument

mio project.json si presenta così:

"dependencies": { 
    "Microsoft.AspNet.Mvc": "6.0.0-beta4", 
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta4", 
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4", 
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta4", 
    "System.Xml.XDocument": "4.0.10-beta-23109" 
    }, 

    "commands": { 
    "web": "Microsoft.AspNet.Hosting --config hosting.ini" 
    }, 

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

E il mio codice come questo:

var xd = XDocument.Parse(str); 

Ma ricevo l'errore-messaggio:

Severity Code Description Project File Line 
Error CS0433 The type 'XDocument' exists in both 'System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' and 'System.Xml.XDocument, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' WebApplication2.DNX 4.5.1 ValuesController.cs 23 

Semplicemente cercando di risolverlo con l'utilizzo di System.Xml.Linq.XDocument xd = o System.Xml.XDocument xd = non sembra funzionare, cos'altro posso tr y?

+0

provare a cancellare la cartella bin i n il tuo progetto. Sembra che tu abbia aggiornato la libreria Net e che il codice non sia stato completamente ricompilato. Quindi stai ottenendo un misto di codice compilato guardando le vecchie e nuove versioni di Net. L'eliminazione del raccoglitore costringerà tutto il codice a ricompilare e punta alla stessa versione della libreria. Questa è un'occorrenza comune perché la dipendenza nella compilazione non riconosce le differenze nelle versioni di Net. – jdweng

risposta

7

ho risolto questo aggiungendo il System.Xml.XDocument dipendenza come framework assembly (cioè quello dal GAC installata con la versione completa Net sarà utilizzato) per il quadro dnx451 e solo come pacchetto NuGet per la dnxcore quadro:

"frameworks": { 
    "dnx451": { 
    "frameworkAssemblies": { "System.Xml.Linq": "4.0.0.0" } 
    }, 
    "dnxcore50": { 
    "dependencies": { "System.Xml.XDocument": "4.0.10" } 
    } 
} 

io la penso diversamente quando si compila la versione dnx451 si confonde tra il pacchetto NuGet e la dll installato con il quadro completo .Net

Problemi correlati