如何在 Asp.Net Core 3 中訪問 System.Drawing 即 System.Drawing.Common
我正在將針對完整框架的 Asp.Net Core 2.2 網站轉換為針對.Net Core 3.1 的 Asp.Net Core 3.1 應用程序。我有點不清楚與 System.Drawing 相關的依賴關係以及如何實現它們。
我的項目使用 System.Drawing 並且在 Asp.Net Core 3.1 下編譯時出現此錯誤,表明我添加了對以下內容的引用
System.Drawing.Common.dll:錯誤 CS1069:在命名空間“System.Drawing”中找不到類型名稱“Image”。此類型已轉發到程序集 ‘System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51’ 考慮添加對該程序集的引用。1-wwwGiftOasis3 C:\Users\Ron\source\repos\wwwGiftOasis3\wwwGiftOasis3\site\seller\profile\about\s-photos.cs
在 Visual Studio 中,我看不到直接將引用添加到裸機的方法,
System.Drawing.Common.dll因此我假設我應該通過 NuGet 添加引用。在 NuGet 中,我看到一個
System.Drawing.Common看起來像我想要的包,但我不清楚我的項目是否滿足依賴項:我的項目顯示了這些依賴項:
所以我有幾個與這一切相關的問題:
1)我的項目依賴Framework的事實是否
Microsoft.NETCore.App滿足NuGet包的Microsoft.NETCore.Platforms依賴?
- 我打算只在 Windows 上執行這個 Asp.Net Core 3.1 網站這一事實是否滿足 NuGet 包的
Microsoft.Win32.SystemEvents依賴性?
System.Drawing使用特定於 Windows 的 API,因此與跨平台的 .NET Core 不兼容。Microsoft 創建了 .NET CoreSystem.Drawing.Common的就地替代品。System.Drawing它是一個精確的 API 替代品,但以跨平台而不是特定於 Windows 的方式執行圖像操作。總而言之,是的,您只需將 NuGet 放入您的項目中,然後去城裡。您無需擔心其他任何事情。

