2015-08-14 5 views
6

Mam problem z najnowszą wersją beta biblioteki .net i biblioteki Xdocument.asp.net vnext i XDocument

Moja project.json wygląda następująco:

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

A mój kod tak:

var xd = XDocument.Parse(str); 

Ale otrzymuję błędów wiadomość:

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 

po prostu stara się rozwiązać go przy użyciu System.Xml.Linq.XDocument xd = lub System.Xml.XDocument xd = nie wydaje się działać, co jeszcze mógłbym tr y?

+0

spróbuj usunąć folder bin í n twój projekt. Wygląda na to, że zaktualizowałeś bibliotekę Net i kod nie został całkowicie przekompilowany. Dostajesz mieszankę skompilowanego kodu patrząc na stare i nowe wersje Net. Usunięcie bin zmusi cały kod do rekompilacji i wskaże tę samą wersję biblioteki. Jest to typowe zdarzenie, ponieważ zależność w kompilacji nie rozpoznaje różnic w wersjach sieci. – jdweng

Odpowiedz

7

I zostały rozwiązane, dodając zależność System.Xml.XDocument jako framework assembly (co oznacza, że ​​jeden z GAC zainstalowany w pełnej wersji Net będzie stosowany) dla ram dnx451 i tylko jako opakowania Nuget do dnxcore ramy:

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

myślę inaczej podczas kompilowania wersji dnx451 robi POMYLENIA pakietu Nuget i dll zainstalowany z pełną .NET framework