.NET Core中創建和使用NuGet包的示例代碼_實用技巧

來源:腳本之家  責任編輯:小易  

最主要是內存和硬盤,最后是CPU;自己親測同開兩臺虛擬機,一臺centos,一臺2008R2,都裝在機械硬盤上,運行時差點卡死,后來移至固態硬盤上可以流暢運行,虛擬機重要的是內存,其次是百硬盤。CPU按照配置開三虛擬機完全沒有問題。你之所以覺得卡是因為你的硬件設備不能夠滿足現有的度內存需要,需要更換硬件。虛擬機在計算機科學中的體系結構裏問,是指一種特殊的答軟件,他可以在計算機平臺和終端用戶之間創建一種環境,而終端用戶則是基版于這個軟件所創建的環境來操作軟件。在計算機科學中,虛擬機是指可以像真實機器一權樣運行程序的計算機的軟件實現,其實虛擬機最重要的是內存,其次是硬盤,然百后才是CPU。按照你的配置,開三個虛擬機完全不是問題。我的筆記本T6570的CPU(很老),4GB內存,320GB的5400轉硬盤,同時開兩個redhat5.5和一個xp,運行很流暢。根據你的情況,改為8GB內存,加上7200轉的硬度盤開三個虛擬機更不是問題。當然,如果是SSD硬盤就更好了。另外,問如果想要流暢的虛擬機體驗,需要做額外的工作:1、安裝vmware tools(這個是必須的)。安裝和不安裝tools的虛擬機體驗度差別極大。不安裝tools的虛擬機,答鼠標移動起來都費勁,安裝完成后就好了。2、優化虛擬機:關閉虛擬機中很多不必要的服務,具體關閉哪些,請參考操作系統的優化。3、登錄方式的改專變:盡量不要從控制臺登錄虛擬機,對于Windows的虛擬機,盡量通過遠程桌面登錄。對于linux虛擬機,請通過ssh登錄。通過上面幾點屬,可以改善虛擬機的體驗度,試試看吧。本回答被提問者采納,1. 無論是VMWARE還是微軟自己的WINDOWS VIRTUAL PC或者HYPERV對于CPU和內存的消耗都是巨大, 基本上4核心或以上并且擁有大緩存的CPU才可以保證虛擬機比較流暢的運行. 而相對硬盤對于虛擬機的速度影抄響反而不是太大.2. 雙核的CORE I5 3210M 并只有3MB L3緩存的CPU上使用VIRTURAL MACHINE(虛擬機)并不是一個很好的選擇.....舉個例子:臺式機CORE I5 3330+8G內存zd,中執行1個WINDOWS VIRTUAL PC (XP), 基本上可以勉強保證流暢運行; 在XEON E5 2430, 32G內存的服務器上同時執行2個WINDOWS SERVER 2012+3個XP的虛擬機, 倒是非常流暢,虛擬機的硬件配置是可以更改的,如描述,是運行兩個虛擬機的情況下,物理機還很流暢,但虛機滿,可以關閉虛機,點配置,更改下虛機的硬件,增加cpu核數和內存,再試。本回答被網友采納www.13333515.buzz防采集請勿采集本網。

在.NET Core的項目中,如果我們要在項目中引用其它DLL文件,不建議直接在項目引用中添加DLL文件(雖然在.NET Core項目中也可以這么做),建議是去直接下載DLL文件所屬的NuGet包。這樣最大的好處是我們可以將要引用DLL文件的所有依賴文件也一起引入到項目中,這樣保證了引用文件的完整性,讓其可以正確地運行。

下面我們通過一個.NET Core類庫項目和一個ASP.NET Core項目,來演示怎么發布一個NuGet包,并在項目中引用該NuGet包。

首先我們新建一個.NET Core類庫項目"Custom.Library.StringUtils",它包含一個簡單的字符串工具類"StringHelper",用來做簡單的字符串處理:

using System;using Newtonsoft.Json;namespace Custom.Library.StringUtils{ /// <summary> /// 字符串工具類 /// </summary> public static class StringHelper { /// <summary> /// 將字符串轉換為大寫 /// </summary> /// <param name="text">字符串</param> /// <returns>大寫的字符串</returns> public static string GetUpperString(string text) { return text.ToUpper(); } /// <summary> /// 將一個對象轉換為json字符串 /// </summary> /// <param name="jsonObject">對象</param> /// <returns>json字符串</returns> public static string ToJson(object jsonObject) { return JsonConvert.SerializeObject(jsonObject); } }}

注意為了演示我們這個.NET Core類庫項目還引用了其它NuGet包,我們在項目中引用和使用了著名的json處理NuGet包:Newtonsoft.Json

接下來我們要把類庫項目"Custom.Library.StringUtils"發布為一個NuGet包。

首先由于我們在項目中寫了很多<summary>注釋,我們肯定希望其它的.NET Core項目引用了我們的NuGet包后,也能得到這些<summary>的提示,所以我們要在項目屬性(Properties)上做一些設置:

在項目的屬性上,我們選中Build頁面,這里有兩個地方要進行設置,首先由于我們是要在發布的NuGet包中生成XMLdocumentation文件,來包含<summary>注釋,所以我們要將Configuration下拉框選擇為All Configurations,這樣我們可以在發布(Release)時也生成XMLdocumentation文件,而不僅僅是在調試(Debug)時才生成。然后我們還要確保XML documentation file這個復選框是勾上的,這樣當我們的.NET Core類庫項目發布后才會生成對應的XML documentation文件:

其次每個NuGet包其實都有版本號,我們可以在Package頁面,通過Package version來設置當前NuGet包的版本號為1.0.0,如下所示:

然后我們就可以發布我們的.NET Core類庫項目"Custom.Library.StringUtils"為NuGet包了,在項目上點擊發布(Publish):

在彈出的配置窗口中選擇一個發布目錄,這里我們選擇為本地計算機目錄"C:\Local nuget repository",這個目錄也會作為我們后面本地NuGet包管理器的source,實際上我們還可以選擇一臺遠程計算機的共享目錄(例如\\192.168.1.105\Remote nuget packages這種網絡共享目錄)作為NuGet包的source目錄,這樣如果我們的開發團隊人員是在一個局域網中,就可以讓每個開發人員的Visual Studio從局域網的共享目錄中獲取需要的NuGet包了。

點擊發布(Publish)后,我們可以在目錄"C:\Local nuget repository"下看到,類庫項目生成的NuGet文件就已經存在了:

注意生成的NuGet文件名中是包含版本號的,例如現在如果我們在項目屬性(Properties)中的Package頁面上,將Package version改為2.0.0,如下所示:

然后再發布.NET Core類庫項目,我們可以看到在發布目錄"C:\Local nuget repository"下會再生成一個NuGet文件,這次版本號是2.0.0:

接下來我們就要在另外一個ASP.NET Core項目中來引用我們創建的NuGet包了,為此,我們新建一個ASP.NET Core項目"AspNetCore3000Message"。

首先我們要配置Visual Studio中尋找NuGet包的source,在Visual Studio中選擇Tools > NuGet Package Manager > Package Manager Settings

然后在彈出窗口中選中Package Sources頁面,然后點擊加號新建一個NuGet包source,名稱(Name)為"Local nuget package",路徑(Source)為我們前面.NET Core類庫項目的發布目錄"C:\Local nuget repository",如下所示:

點擊OK按鈕后,我們就將一個本地目錄設置為了Visual Studio中NuGet包管理器的source了,就像前面所說我們還可以將一臺遠程計算機的共享目錄作為source,這樣開發團隊人員的Visual Studio都可以從該共享目錄中獲取NuGet包了。

現在我們在ASP.NET Core項目"AspNetCore3000Message"中,打開NuGet包管理器:

然后,我們將右上角的Package source下拉框選擇為All,接著在搜索框中輸入我們前面發布的.NET Core類庫項目名"Custom.Library.StringUtils",就可以找到我們發布的NuGet包了,由于我們前面發布了兩個版本到發布目錄"C:\Local nuget repository",所以這里顯示NuGet包的版本也有兩個"1.0.0"和"2.0.0",另外由于我們在.NET Core類庫項目"Custom.Library.StringUtils"中引用了Newtonsoft.Json這個NuGet包,所以我們這里看到在Dependencies下面顯示我們的NuGet包還依賴于Newtonsoft.Json,這樣在安裝我們的NuGet包Custom.Library.StringUtils時,也會下載和安裝Newtonsoft.Json這個NuGet包,保證了所有依賴的DLL文件都被引用到了ASP.NET Core項目"AspNetCore3000Message"中:

這里我們選擇安裝"2.0.0"版本:

之后我們就可以在ASP.NET Core項目中使用.NET Core類庫項目中的StringHelper類了,并且可以看到<summary>注釋是成功顯示的:

參考文獻:

How to include XML documentation file in NuGet package built from a project file?

到此這篇關于.NET Core中創建和使用NuGet包的示例代碼的文章就介紹到這了,更多相關.NET Core 創建和使用NuGet包內容請搜索真格學網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持真格學網!

S是versus的簡寫,versus是拉丁文,表示“相對照、相對立”的意思。這個詞及其簡寫,后來被英文采用,又輾轉流入了漢語之中。在英語中,VS是個介詞,它有以下三種典型的用法。1、體育報道中,表示誰跟誰進行比賽。例如:羅馬VS國際米蘭。2、一般報道中,表示兩個對立的事物。例如:國家安全VS個人自由。3、法律文書中,表示誰跟誰發生了訴訟。例如:“布朗VS教育會議”案VS進入漢語之后,只繼承了英語中的前兩種用法。在法律文件中,人們一般都把“VS”翻譯成“與”。漢語為什么要借用這個外來的字母組合?我認為,有兩個原因:第一,漢語一時找不到合適的詞翻譯它;第二,它有比漢字更直觀的作用。一般情況下,VS都可以翻譯成“對”,比如可以說:“今晚的球賽是羅馬對國際米蘭。但表示兩種事物對立的時候,“對”往往無法傳達“VS”所包含的“對抗,對立”的意思。有一部關于美國性書大亨的電影,名叫《人民VS拉里?弗林特》,我們翻譯成《人民反對拉里?弗林特》,其實不盡準確。因為VS只表示兩者對立,并沒有說明誰反對誰。當然,要是翻譯成《人民對拉里?弗林特》,那就不知所云了。正因為“VS”沒有一個確切的漢字與之對應,所以才原裝進口過來。另外,即使在“VS”可以翻譯成“對”的場合,人們也更喜歡用這兩個字母。因為VS放在漢字中非常醒目,起到了分詞的效果,從而給人們的閱讀帶來了方便。VS的原形是VERSUS,V首當其沖,按英語乃至大多數語言字母縮略的習慣,“老大”肯定是要保留的,而一個單詞里有兩個S,再怎么也不能把它略去。VERSUS的同義詞是AGAINST(對抗),因此我們就可以對這個英語的“對”字有更確切的了解了。“VS”從球場到公堂,“對抗”的含義就成了“訴訟”,但在老外的眼里意思依舊,反正球場如公堂,公堂如球場,勝負難說,生死未卜,對抗(抗辯)雙方總要你死我活一爭雄雌,只不過球場上那你爭我奪的肢體語言變成了公堂的舌槍唇劍罷了。“訴訟”一詞中國老百姓更喜歡說“打官司”,所以在特定的司法場合,VS就是“打官司”,“打官司”就是VS,在海外的華文報刊上,有時出現《張三VS約翰》的大標題,華洋雜處的中文讀者就知道是張三和約翰打官司了。現在國內有些時尚報刊把VS作為“遇上”以及“與”的意思,略顯牽強,有時甚至有點荒腔走板,比如“成龍VS梅麗爾”,一看標題,我還以為是成龍“叫板”梅里爾,其實是兩人在一起演戲罷了。編輯可能對VS的來龍去脈不是特別的清楚,進而“模糊使用”。但萬一成龍先生認真起來,要與你VS—打官司的話,那可就吃不了兜著走了。擴展資料曾蒙冤入獄的美國華裔科學家李文和,年前寫了一本書,中文書名為《我的國家和我對簿公堂》,2002年1月15日首發,個中鏗鏘有力的四個字“對簿公堂”在英文原著中僅僅一個單詞就一目了然了,它就是VS的原型VERSUS,何等簡潔!書名原文為《MY COUNTRY VERSUSME》別小看這個的VERSUS,它的語言分量一點兒也不比“對簿公堂”弱,在“VS—打官司”的語言含義后面,還隱含著“對壘”、“對陣”乃至“抗爭”的意思,體現出李文和這個身單力薄的老人向著“不公”與“種族歧視”叫板。“美利堅合眾國VS李文和”的結果:被囚禁了278個日夜后的李文和無罪獲釋!美國聯邦法官帕克用他深沉而權威的語調承認,他被美國政府所誤導。而跨出監獄大門的李文和則平靜而堅定地說:“美國總統應向我道歉”,他那一頭白發在午后的陽光下閃動著銀色的光澤。參考資料:VS的百度百科內容來自www.13333515.buzz請勿采集。


  • 本文相關:
  • asp.net mvc學習之nuget在vs中的運用淺談
  • asp.net簡單實現注銷功能
  • asp.net mvc 分頁、檢索、排序整體實現代碼
  • coolite優化導出excel文件實現代碼
  • asp控件和html控件的概念區別
  • 分享visual studio原生開發的10個調試技巧
  • asp.net 數據操作類(附通用數據基類)
  • 使用 salt + hash 將密碼加密后再存儲進數據庫
  • asp.net中時間格式化的6種方法詳細總結
  • 如何在不同.net版本實現單點登錄
  • asp.net通過配置文件連接access的方法
  • VS是什么意思?
  • 虛擬機需要什么配置
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全基礎應用實用技巧自學過程首頁asp.net實用技巧asp.net mvc學習之nuget在vs中的運用淺談asp.net簡單實現注銷功能asp.net mvc 分頁、檢索、排序整體實現代碼coolite優化導出excel文件實現代碼asp控件和html控件的概念區別分享visual studio原生開發的10個調試技巧asp.net 數據操作類(附通用數據基類)使用 salt + hash 將密碼加密后再存儲進數據庫asp.net中時間格式化的6種方法詳細總結如何在不同.net版本實現單點登錄asp.net通過配置文件連接access的方法java正則表達式 pattern和matche未將對象引用設置到對象的實例 (asp.net(c#)網頁跳轉七種方法小結未能加載文件或程序集“xxx”或它asp.net“服務器應用程序不可用”asp.net中的幾種彈出框提示基本實asp.net gridview 72般絕技asp.net生成excel并導出下載五種asp.net對路徑"xxxxx"asp.net漢字轉拼音和獲取漢字首字remoting和webservice的詳細介紹及區別javascript 直接調用服務器c#代碼 asp.neasp.net 動態寫入服務器端控件iis處理asp.net請求和asp.net頁面生命周期asp.net實現推送文件到瀏覽器的方法asp.net 包含文件的方法ckeditor自定義按鈕插入服務端圖片asp.net mvc2 增刪改查demo代碼微信公眾平臺開發之自定義菜單.net代碼解.net orm性能測試分析
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.13333515.buzz All Rights Reserved
    3排列五开奖结果