2015-08-14 17 views
6

Tôi đang gặp sự cố với phiên bản beta mới nhất của .net và thư viện Xdocument.asp.net vnext và XDocument

project.json của tôi trông như thế này:

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

Và mã của tôi như thế này:

var xd = XDocument.Parse(str); 

Nhưng tôi nhận được lỗi thông điệp:

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 

Đơn giản chỉ cần cố gắng giải quyết nó bằng cách sử dụng System.Xml.Linq.XDocument xd = hoặc System.Xml.XDocument xd = dường như không hoạt động, tôi có thể làm gì khác y?

+0

Hãy thử xóa thư mục bin i n dự án của bạn. Có vẻ như bạn đã cập nhật thư viện Net và mã không biên dịch lại hoàn toàn. Vì vậy, bạn đang nhận được một hỗn hợp của mã biên dịch xem xét các phiên bản cũ và mới của Net. Việc xóa thùng sẽ buộc tất cả mã phải biên dịch lại và trỏ đến cùng một phiên bản của thư viện. Đây là một sự xuất hiện phổ biến bởi vì sự phụ thuộc trong biên dịch không nhận ra sự khác biệt trong các phiên bản của Net. – jdweng

Trả lời

7

Tôi đã giải quyết điều này bằng cách thêm System.Xml.XDocument phụ thuộc như một framework assembly (có nghĩa là một từ GAC cài đặt với phiên bản đầy đủ Net sẽ được sử dụng) cho các khuôn khổ dnx451 và chỉ như là một gói NuGet cho dnxcore khuôn khổ:

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

tôi nghĩ rằng nếu không khi soạn thảo phiên bản dnx451 nó bị nhầm lẫn giữa các gói NuGet và dll cài đặt với các khuôn khổ Net đầy đủ

Các vấn đề liên quan