2016-11-30 179 views
7

我想引用System.Drawing在.net核心控制檯應用程序目標net46,但程序集不存在。 根據MS如果您使用dotnetcore System.Drawing不可用。但是,如果你引用完整的.NET框架,你應該能夠使用它.NET核心和System.Drawing

這是我project.json

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

    "dependencies": { 

    }, 

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

任何想法是什麼問題

+0

.NET Core是一個運行時,你不能「在.NET 4.x上運行它」。請不要將.NET Core與ASP.NET Core混淆,並瞭解其差異以避免混淆。 ASP.NET Core是一個Webstack,.NET Core是一個類似.NET Framework的運行時。 ASP.NET Core可以運行在 – Tseng

+3

@Tseng你看過我的問題了嗎?誰說過有關ASP.NET的任何內容? – pantonis

+0

您是否首先閱讀了自己的問題?你的第一句話說__我試圖在一個.NET核心控制檯應用程序中引用System.Drawing,目標是net46__,這告訴我你不明白ASP.NET Core和.NET Core之間的區別。我只是爲你解釋它,以幫助你避免將來出現混亂,或者**解決你的問題。因爲對於閱讀這個問題的人來說,如果你想在.NET Core,.NET框架上運行它,那就不清楚了。這是矛盾的,因爲.NET Core和.NET Framework是相互排斥的。 ASP.NET Core在兩者上運行,但ASP.NET Core是一個webstack,而不是運行時 – Tseng

回答

7

System.Drawing不與ASP一個不錯的選擇.NET(更多在這裏:http://www.asprangers.com/post/2012/03/23/Why-you-should-not-use-SystemDrawing-from-ASPNET-applications.aspx

如果你想圖形操作,我建議.Net的核心或ImageProcessor(http://imageprocessor.org/)/ ImageResizer使用ImageSharp(https://github.com/JimBobSquarePants/ImageSharp)(https://imageresizing.net/)在.Net框架

另外,如果你真的需要使用System.Drawing變化框架在project.json到netstandard1.6並添加依賴"NETStandard.Library": "1.6.1"

+0

謝謝。儘管它仍然在Alpha版本中,並且找不到任何文檔。希望沒有錯誤存在,因爲我會在生產環境中運行它。很快。 – pantonis

+0

我剛剛意識到我也瞄準了我的項目中的完整的.NET框架,並且我有一個對「NETStandard.Library」的引用:「1.6.1」',但是怎麼回事? .NET Standard是一種暴露所有Frameworks應該實現的API的「契約」。 'System.Drawing' [在.NET Core中非常空](https://github.com/dotnet/corefx/tree/master/src/System.Drawing.Primitives/src/System/Drawing)暫時和我有人在Twitter上告訴我們,即使.NET Standard 2.0即將推出,也不會有與完整的.NET Framework上存在的類似的System.Drawing實現。我不明白 –

4

當你想在.NET充分利用asp.net核心框架只有你可以參考這樣的舊類庫

{ 
    "version": "1.0.0-*", 

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


    } 
    } 
}