ASP.NET Core project.json imports 是什麼意思?

来源:http://www.cnblogs.com/xishuai/archive/2016/12/01/aspnet-core1-project-json-imports.html
-Advertisement-
Play Games

示例代碼: is a way to use packages that were not designed for that framework. Basically you tell it "Use those targets even though they don't seem to be s ...


示例代碼:

"frameworks": { 
    "netcoreapp1.0.0": { "imports" : "portable-net45+win81" } 
} 

importsis a way to use packages that were not designed for that framework. Basically you tell it "Use those targets even though they don't seem to be supported. I know what I'm doing".

註:摘錄自 Frameworks and imports sections in project.json: what are they?

上面這段解釋什麼意思?字面意思:imports是使用程式包的一種方式,雖然不是為這種框架設計的,基本上你告訴它“使用這些目標框架,即使它們似乎不被支持,但我知道我在做什麼”,翻譯的比較生硬,你可以這樣理解:imports的作用是各個平臺之間的相容處理,並且針對的是不支持的程式包。

概念理解還是有些問題,再來看下麵的解釋。


摘錄:What it says right here is that I’m targeting the netcoreapp1.0 framework (which is the default framework for a .NET Core application). With the “imports” bit I’m also stating that any dependency I want to include that targets dnxcore50 should be treated as compatible with netcoreapp1.0. Basically I’m instructing the tooling to ignore the fact that dnxcore50 isn’t the same thing as netcoreapp1.0 because I know it is the same thing (or more precisely Microsoft knows that they are the same).

翻譯:需要說明的是,如果目標框架平臺是 netcoreapp1.0,使用imports dnxcore50,就可以使 netcoreapp1.0 和 dnxcore50 平臺相容,並且使工具忽略 netcoreapp1.0 和 dnxcore50 不一樣的事實,因為我知道它是相同的事情(或更確切的 Microsoft 知道他們是相同的)。

解釋:舉一個示例,比如 WebApi.Client 程式包,分別實現了 netcoreapp1.0 和 net451 平臺版本(代碼完全一樣,只是基於的平臺不一樣),然後有一個應用程式是 netcoreapp1.0 平臺的,然後它去引用 net451 平臺的 WebApi.Client 程式包,在 VS2015 中會報不支持平臺錯誤,雖然兩種平臺版本的代碼完全一樣,但還是不能跨平臺飲用,imports就是解決這個問題的,並且使 VS2015 忽略這個錯誤。

摘錄:A word of warning is in order here though. Theoretically I could “import” any framework that’s currently out there I can install pretty much any package into my project. However, that doesn’t mean that my application will actually run and work. If a package I installed into my project is using an API that’s not available on the platform that my application will be running on it will simply fail at runtime.
Therefore you should be careful when using “imports” and make sure that you test your application properly on the actual framework it will be running on. Think of it as when you’re using “imports” you’ve turned off the tooling and you are on your own and its your job to make sure that your application works correctly.

翻譯:警告在這裡,理論上,我可以imports任何框架平臺,然後安裝所有平臺的程式包。然而,這並不意味著我的應用程式可以實際運行和工作。如果我安裝到我項目的程式包,在這個平臺上 API 不可用,我的應用程式在運行時將是失敗的。
因此,在使用imports時應該小心,要確保在平臺框架上,應用程式可以實際正常運行。想象下,當你使用了imports,你就關閉了 VS2015 的提示,你就要確保它是正常工作的。

解釋:舉個例子,比如 WebApi.Client 程式包,分別實現了 netcoreapp1.0 和 net451 平臺版本(代碼完全不一樣,內部實現使用了不同平臺的 API),然後有一個應用程式是 netcoreapp1.0 平臺的,然後它去引用 net451 平臺的 WebApi.Client 程式包,需要使用imports net451,在 VS2015 編譯完全沒什麼問題,但在 netcoreapp1.0 平臺實際運行的時候,就會出錯了,因為不同平臺的 WebApi.Client 程式包,使用了不同平臺的 API。

註:摘錄自 .NET Platform Standard and the magic of “imports”

翻譯的比較差,但大概意思是懂了,總的來說,使用imports,只是解決了在 VS2015 中平臺不支持的錯誤提示,但並不一定說明實際是正常運行的,所以,要在實際運行環境中,測試引用其他平臺的程式包,執行是否有問題。



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • "原文地址 Kestrel server for ASP.NET Core" By [Tom Dykstra][1], [Chris Ross][2], and [Stephen Halter][3] Kestrel是一個基於libuv的跨平臺[ASP.NET Core web伺服器][4],[li ...
  • 公司還用這些老家伙沒辦法,用了幾次這倆。每次用都要重新翻一下A片。 好好的A片楞是翻譯成了禪經。把這東西弄成個玄學。微軟也是吃棗藥丸。參考了@風中靈藥的blog.寫的牛逼。 還有一些公司用到的風中靈藥沒有提及,我給自己留個tip.好以後看看。有錯誤希望大家指出。雖然我不一定改。 AutoResetE ...
  • 直接上代碼,包各位看客能用!!! 1.首先請求參數的封裝 2.HttpWebRequest 封裝 HttpUploadClient類中兩個Execute2,參考網上,大都用第一個,如果上傳小文件沒問題,要是比較大(百兆以上)就會記憶體溢出,然後就用流方式。思路是一樣的 3.調用示例: 4.介面服務後臺 ...
  • 第一步:訪問:https://www.microsoft.com/zh-cn/software-download/windows10ISO/ 預設就只能下載win10,這怎麼行呢。巨硬程式員貌似沒做服務端驗證。。第二步:瀏覽器控制台輸入以下js代碼: 效果: 需要下載的就快下。指不定哪天就被封了。 ...
  • 目前chrome是我在實現webdriver時運行最穩定的瀏覽器,如何利用webdriver打開多個標簽頁和鏈接呢,到處查找得到的往往只是如何打開標簽頁。打開標簽頁很簡單,chrome瀏覽器打開標簽頁的快捷鍵是ctrl+t,那把ctrl+t的按鍵事件傳入即可,很多種實現方式,以下只列出兩種:1:Ac ...
  • 本文介紹應用程式中添加書籍的保存功能,涉及兩個功能“新增”與“修改”。異常處理的小結。 ...
  • .net初學者,有錯誤歡迎指正。大家共同進步 Response 輸出數據 Reponse對象和Request對象組成了一對發送,接受數據的對象。 發送信息:Reponse.Write("字元串"); Reponse對象最常用的方法是Write,用於向瀏覽器發送信息。使用Write方法輸出的字元串會被 ...
  • 定義一個靜態類,類中定義靜態方法,方法中參數類型前邊加上this修飾符,即可實現對this所指向類的擴展。 有點類似js中通過類的原型去擴展方法,類的實例對象就可以通過對象.方法名去調用 示例如 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...