2015-08-14 16 views
6

Ich habe ein Problem mit der neuesten Beta-Version von .net und der Xdocument-Bibliothek.asp.net vnext und XDocument

sieht mein project.json wie folgt aus:

"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": { } 
    }, 

Und mein Code wie folgt:

var xd = XDocument.Parse(str); 

Aber ich erhalte die Fehlermeldung:

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 

einfach zu versuchen, löse es mit der Verwendung System.Xml.Linq.XDocument xd = oder System.Xml.XDocument xd = scheint nicht zu funktionieren, was sonst könnte ich tr y?

+0

Versuchen sie das Löschen der Ordner bin ich durcheinander n dein Projekt. Ich sehe aus, als ob Sie die Net-Bibliothek aktualisiert haben und der Code nicht vollständig neu kompiliert wurde. Sie erhalten also eine Mischung aus kompiliertem Code, der die alten und neuen Versionen von Net betrachtet. Durch das Löschen der Bin wird der gesamte Code neu kompiliert und verweist auf dieselbe Version der Bibliothek. Dies ist ein häufiges Vorkommen, da die Abhängigkeit in der Kompilierung die Unterschiede in den Versionen von Net nicht erkennt. – jdweng

Antwort

7

Ich habe dies die System.Xml.XDocument Abhängigkeit als framework assembly durch Zugabe gelöst für die dnx451 Rahmen und nur als nuget-Paket für die (die den man aus dem GAC mit der vollständigen .NET-Version wird verwendet, installiert bedeutet) dnxcore Rahmen:

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

ich denke anders, wenn die dnx451 Version kompilieren es zwischen dem nuget Paket und die dll installiert mit dem vollständigen .NET Framework