我遇到了最新的.net版本和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 :(得分:7)
我已经通过将System.Xml.XDocument
依赖项添加为framework assembly(这意味着将使用安装了完整.Net版本的GAC中的一个)来解决此问题。 dnx451 框架,仅作为 dnxcore 框架的nuget包:
"frameworks": {
"dnx451": {
"frameworkAssemblies": { "System.Xml.Linq": "4.0.0.0" }
},
"dnxcore50": {
"dependencies": { "System.Xml.XDocument": "4.0.10" }
}
}
我认为在编译dnx451版本时,它会在nuget包和安装了.Net框架的dll之间混淆