2015-08-14 65 views
6

我遇到了.net和Xdocument庫的最新beta版本問題。asp.net vnext和XDocument

我project.json看起來是這樣的:

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

而且我這樣的代碼:

var xd = XDocument.Parse(str); 

但我收到錯誤消息:

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 

只是想解決它與使用System.Xml.Linq.XDocument xd =System.Xml.XDocument xd =似乎沒有工作,我還能什麼ÿ?

+0

嘗試刪除bin文件夾我安裝的DLL之間困惑時你的項目。我看起來像你更新了網絡庫,代碼沒有完全重新編譯。所以你會看到編譯代碼混合在一起,看看Net的新舊版本。刪除bin將強制所有代碼重新編譯並指向相同版本的庫。這是常見的情況,因爲編譯中的依賴不能識別Net版本的差異。 – jdweng

回答

7

我已通過添加System.Xml.XDocument依賴性作爲framework assembly(這意味着從GAC與完整的.NET版本將用於安裝一個)爲dnx451框架和僅作爲NuGet包爲解決了這個dnxcore框架:

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

我認爲否則編譯dnx451版本,它獲取NuGet包,並與完整的.NET框架