<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      在離線環(huán)境使用nuget包

      原來程序集的引用

      一個項目所有功能我們不可能都自己寫對吧。這個時代 引用一大片的第三方包  項目源文件幾百兆 ,有可能第三方包占了總體積99%。有可能我們自己寫的代碼不過幾十行。想想我們原來的 老時代的 ,如何引用一個第三方的組件,新建項目 項目節(jié)點(diǎn)上 右鍵  添加dll引用:

       然后 在代碼里你就可以編寫代碼,有的還有可能額外的給你加點(diǎn)啥配置文件:

      1 static void Main(string[] args)
      2 {
      3     List<int> ali = new List<int>() { 1, 2, 5, 65, 23 };
      4     string serialStr = JsonConvert.SerializeObject(ali);
      5     Console.WriteLine(serialStr);
      6 }

      為什么你知道這樣用 因?yàn)榈谌綆旃俜降氖褂梅绞骄褪沁@么寫的。

      新的方式

      上面那一套有些跟不上時代了。在python里你都看到 install xxx   ,instal xxx 一句話解決。vs也有 那就是 nuget 。直接打開程序包管理器控制臺:

      PM> Install-Package Newtonsoft.Json 
      正在嘗試收集與目標(biāo)為“.NETFramework,Version=v4.6.1”的項目“ConsoleApp2”有關(guān)的包“Newtonsoft.Json.13.0.3”的依賴項信息
      收集依賴項信息花費(fèi)時間 45.89 ms
      正在嘗試解析程序包“Newtonsoft.Json.13.0.3”的依賴項,DependencyBehavior 為“Lowest”
      解析依賴項信息花費(fèi)時間 0 ms
      正在解析操作以安裝程序包“Newtonsoft.Json.13.0.3”
      已解析操作以安裝程序包“Newtonsoft.Json.13.0.3”
      從“nuget.org”檢索包“Newtonsoft.Json 13.0.3” 
        GET https://www.nuget.org/api/v2/package/Newtonsoft.Json/13.0.3
        OK https://www.nuget.org/api/v2/package/Newtonsoft.Json/13.0.3 1996 毫秒
      正在安裝 Newtonsoft.Json 13.0.3。
      正在將程序包“Newtonsoft.Json.13.0.3”添加到文件夾“C:\Users\真紅\Source\Repos\ConsoleApp2\packages”
      已將程序包“Newtonsoft.Json.13.0.3”添加到文件夾“C:\Users\真紅\Source\Repos\ConsoleApp2\packages”
      已將程序包“Newtonsoft.Json.13.0.3”添加到“packages.config”
      已將“Newtonsoft.Json 13.0.3”成功安裝到 ConsoleApp2
      執(zhí)行 nuget 操作花費(fèi)時間 7.87 sec
      已用時間: 00:00:09.5098825
      PM> 

      或者直接使用圖形化方式選擇安裝:

      在離線環(huán)境使用nuget

      如果在外網(wǎng)新建項目 然后安裝了某些 nuget包 ,你的.sln 文件同級目錄會有個packages文件夾,那么整個解決方案直接拷貝到內(nèi)網(wǎng)  直接就可編譯(其實(shí)背后本質(zhì)也是引用dll   然后你nuget安裝 就自動幫你完成了,你可以理解為這些依賴關(guān)系和配置文件規(guī)格等等信息在nuget包里已經(jīng)定義好了 然后你執(zhí)行nuget安裝時幫你轉(zhuǎn)達(dá)完成),沒錯就是你項目右鍵 添加引用 選dll文件,只不過nuget幫你完成這一過程。我們可以把packages文件夾 內(nèi)的組件搜集到一起 供內(nèi)網(wǎng)新建項目時 其他項目進(jìn)行引用。首先把packages里的組件搜集到一個統(tǒng)一文件夾。然后工具->nuget包管理器->管理解決方案的nuget程序包。在程序包源那 設(shè)置那里加 本地搜集的目錄。這時瀏覽選項卡就可以看到組件列表了。
      然后選擇像常規(guī)方式一樣安裝到內(nèi)網(wǎng)新建的項目就可以了。

       

       安裝后會在項目生成 一個packages.config 里面有項目安裝了的對應(yīng)的包的項。

       并不只是添加dll程序集引用 ,對于要在app.config添加一些奇奇怪怪配置項的 ,如果有nuget包 會自動幫你完成。比如sqlite 的provider配置項  。否則的化你需要對那個組件非常了解(有可能組件不止一個dll,有可能有些未知的配置項你手敲不一定敲的對,有可能依賴最低.net版本或者依賴另一個組件等等)

      這整個過程無需連外網(wǎng)。

      概念總結(jié)和注意項

      注意我們整個過程:在外網(wǎng)安裝并搜集所有的包->拷貝包到離線環(huán)境->設(shè)置離線環(huán)境nuget源為拷貝的路徑->像常規(guī)一樣使用包文件nuget又從本地源安裝到項目目錄下。 nuget安裝完成后 整個工程的狀態(tài) 就跟你原來添加dll引用 完成后整個工程的狀態(tài)一樣了, 你可以理解為這個時候不存在nuget。nuget安裝并沒有什么跟原來特別不一樣的項目結(jié)構(gòu)更改方式。項目不能編譯就是不能編譯 不要扯什么nuget 跟nuget 無關(guān)。

      • 我能把packages包拷到 項目文件夾下 ,然后編輯packages.config 然后編譯時他就會自動去找對應(yīng)的文件進(jìn)行編譯嗎?不要形成拷貝nuget包到本地 改配置文件 就能重新編譯了的錯誤概念。這個理解是完全錯的。抱歉,編譯時不會進(jìn)行nuget任何操作 不會進(jìn)行加dll引用這種操作。原先nuge安裝了模塊的項目 那么引用是自動加好了的,那么整個項目拷到內(nèi)網(wǎng) 一樣可編譯。
      • 內(nèi)網(wǎng)唯一能做的 找內(nèi)網(wǎng)nuget源 安裝模塊,也不存在什么原來安裝了 現(xiàn)在丟失了 需要重新安裝的說法。
      • nuget不需要所謂服務(wù)器的說法:本地你指定個文件夾就可以當(dāng)作源。   

      由此帶來的思考

      這又是我擅長的環(huán)節(jié)了,寫代碼不咋行,扯閑淡講經(jīng)布道指點(diǎn)江山一套一套的。為什么? 我們直接手工點(diǎn)來點(diǎn)去 項目上右鍵 添加dll引用 ,有什么不好 ,有些人會說 不是挺好的嗎?確實(shí) ,不要強(qiáng)行裝逼  ,這樣沒什么不好的 因?yàn)槭止c(diǎn)來點(diǎn)去顯得很low所以就不好嗎?

      但是為什么又要發(fā)展成nuget發(fā)展成命令行安裝這樣?一切都是軟件工業(yè)技術(shù)發(fā)展過后人的思維的使然 :當(dāng)一個東西大了后自然需要規(guī)范化 統(tǒng)一化 自動化。跟其他工業(yè)技術(shù)一樣的,沒什么好說的。

      當(dāng)你達(dá)到一定經(jīng)驗(yàn)后 你就會幡然醒悟 :其實(shí)本質(zhì)不是事情有什么不好 或者什么不能完成。

      站在更高維度看代問題的時候 就會明白:核心思想在于統(tǒng)一規(guī)范和自動化,命令行可以通過腳本 自動化 連接所有過程,這個對于大型項目 是很重要的。

      注意平常我們說的 編譯器是編譯器 ,開發(fā)環(huán)境是開發(fā)環(huán)境 ,構(gòu)建工具是構(gòu)建工具,構(gòu)建工具就是幫你把大型軟件從源碼生成至用戶可用的執(zhí)行文件,這一切需要統(tǒng)一規(guī)范和自動化命令行連接作為支撐。 只不過vs幫你把所有東西搞到一起了。

      如果有人跟你這么說這么做 但是又說不出原因 因?yàn)榇蠹叶歼@樣 那么他在裝逼。

       

      posted @ 2025-01-19 20:27  assassinx  閱讀(525)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 人人妻人人狠人人爽天天综合网| 无码专区 人妻系列 在线| 亚洲天堂在线免费| 亚洲欧洲日韩国内精品| 老色99久久九九爱精品| 国产一区二区三区的视频| 亚洲国产中文字幕在线视频综合| 少妇人妻偷人精品免费| 人妻少妇无码精品专区| 西西444www高清大胆| 好吊妞人成视频在线观看| 手机| 中文字幕人妻有码久视频| 国产不卡精品视频男人的天堂| 抚宁县| 成年女人片免费视频播放A| 无码精品一区二区免费AV| 欧美激情视频一区二区三区免费| 成人小说亚洲一区二区三区| 亚洲人成网站999久久久综合| 免费无码一区二区三区蜜桃| 国产精品福利午夜久久香蕉| 亚洲成A人片在线观看无码不卡 | 午夜亚洲www湿好爽| 国产天美传媒性色av高清| 国产精品免费AⅤ片在线观看| 狠狠色噜噜狠狠狠狠7777米奇| 深州市| 妓女妓女一区二区三区在线观看| 欧美性69式xxxx护士| 亚洲精品成人无限看| 国产一区二区在线激情往| www欧美在线观看| 亚洲高清WWW色好看美女| 国产亚洲一在无在线观看| 英山县| 亚洲成人动漫av在线| 午夜福利偷拍国语对白| 精品久久久久久无码免费| 少妇粗大进出白浆嘿嘿视频| 午夜免费国产体验区免费的|