2016-11-30 28 views
7

Tôi đang cố gắng tham chiếu System.Drawing trong ứng dụng giao diện điều khiển lõi .net nhắm mục tiêu đến net46 nhưng không có lắp ráp. Theo MS nếu bạn sử dụng dotnetcore System.Drawing không khả dụng. Nhưng nếu bạn tham khảo khung lưới đầy đủ, bạn sẽ có thể sử dụng nó.NET Core và System.Drawing

Đây là project.json tôi

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "emitEntryPoint": true 
    }, 

    "dependencies": { 

    }, 

    "frameworks": { 
    "net46": { 
    } 
    } 
} 

Bất kỳ ý tưởng vấn đề

+0

.NET Core là một thời gian chạy, bạn không thể "chạy nó trên đầu .NET 4.x". Xin đừng nhầm lẫn .NET Core với ASP.NET Core và tìm hiểu sự khác biệt để tránh nhầm lẫn. ASP.NET Core là một webstack, .NET Core là một thời gian chạy như .NET Framework. ASP.NET Core có thể chạy trên cả hai – Tseng

+3

@Tseng bạn đã đọc câu hỏi của tôi chưa? Ai nói gì về ASP.NET? – pantonis

+0

Bạn đã đọc câu hỏi của mình ngay từ đầu chưa? Câu đầu tiên của bạn nói __ Tôi đang cố gắng tham chiếu System.Drawing trong một ứng dụng giao diện điều khiển lõi .net nhắm mục tiêu net46__, cho tôi biết bạn không hiểu sự khác biệt giữa ASP.NET Core và .NET Core. Tôi chỉ giải thích nó cho bạn, để giúp bạn tránh nhầm lẫn trong tương lai hoặc để sửa ** câu hỏi của bạn. Bởi vì đối với những người đọc câu hỏi của nó không rõ ràng nếu bạn muốn chạy nó trên .NET Core, .NET framework. Đó là mâu thuẫn, bởi vì .NET Core và .NET Framework là loại trừ lẫn nhau. ASP.NET Core chạy trên cả hai, nhưng ASP.NET Core là một webstack, không phải thời gian chạy – Tseng

Trả lời

7

System.Drawing là những gì không phải là một lựa chọn tốt với ASP NET (thêm ở đây: http://www.asprangers.com/post/2012/03/23/Why-you-should-not-use-SystemDrawing-from-ASPNET-applications.aspx)

Nếu bạn muốn thao tác đồ họa tôi đề nghị sử dụng ImageSharp (https://github.com/JimBobSquarePants/ImageSharp) trên Net Core hoặc ImageProcessor (http://imageprocessor.org/)/ImageResizer (https://imageresizing.net/) trên .Net Framework

Ngoài ra, nếu bạn thực sự cần phải sử dụng System.Drawing khuôn khổ sự thay đổi trong project.json của bạn để netstandard1.6 và thêm vào phụ thuộc "NETStandard.Library": "1.6.1"

+0

Cảm ơn. Mặc dù nó vẫn còn trong phiên bản Alpha và không thể tìm thấy bất kỳ tài liệu nào. Hy vọng rằng không có lỗi tồn tại bởi vì tôi sẽ chạy nó trong env sản xuất. rất sớm. – pantonis

+0

Tôi chỉ nhận ra rằng tôi cũng nhắm mục tiêu đầy đủ NET Framework trong dự án của tôi và tôi có một tham chiếu đến '" NETStandard.Library ":" 1.6.1 "', nhưng làm thế nào đến? .NET Standard là một loại "hợp đồng" hiển thị một số API mà tất cả các Khung nên triển khai. 'System.Drawing' [khá trống trong .NET Core] (https://github.com/dotnet/corefx/tree/master/src/System.Drawing.Primitives/src/System/Drawing) cho thời điểm này và tôi đã được nói trên Twitter rằng ngay cả với .NET Standard 2.0 sắp ra mắt sẽ không có System.Drawing thực hiện tương tự như những gì đang tồn tại trên .NET Framework đầy đủ. Tôi không hiểu –

4

Khi bạn muốn sử dụng lõi asp.net trên NET Full Chỉ khung bạn mới có thể tham khảo các thư viện lớp học cũ như thế này

{ 
    "version": "1.0.0-*", 

    "frameworks": { 
    "net452": { 
     "dependencies": { 
     }, 
     "frameworkAssemblies": { 
     "System.Drawing": "4.0.0.0", 
     } 


    } 
    } 
}