程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 在離線環境中使用.NET Core

在離線環境中使用.NET Core

編輯:關於.NET

在離線環境中使用.NET Core

0x00 寫在開始

很早開始就對.NET Core比較關注,一改微軟之前給人的印象,變得輕量、開源、跨平台。最近打算試著在工作中使用。但工作是在與互聯網完全隔離的網絡中進行的,因此就開始了在離線環境中部署.NET Core開發環境的嘗試。總的來說還是比較蛋疼的,幾乎每個階段都遇到了問題。不過還好最後搞定了,寫下這篇博客做個記錄,同時分享給有類似需求的童鞋。以下都是親測有效。

0x01安裝VS2015 Update3

開發.NET Core可以使用VS2015和VS Code。在這裡先討論VS2015的情況,畢竟如果在Windows下開發,VS2015功能上還是要強太多。.NET Core Web Tools必須要VS2015 Update3以上,也就是首先要在內網安裝VS2015 Update3。我剛開始的方式是從官網下載光盤鏡像,然後安裝。但這樣大多數情況下是無法安裝的。會提示“安裝包丟失或損壞”,之前裝VS2015時可以選擇跳過文件,裝完後也能用(至少WPF沒問題),但從VS2015 Update2開始,有些安裝包無法選擇跳過,只能退出安裝。

之所以提示安裝包損壞,是因為系統中缺少

microsoft root certificate authority 2010

microsoft root certificate authority 2011

這兩個證書,導致安裝包驗證無法通過,所以認為損壞。

解決方法:

1.找一台正常裝了VS2015的電腦,Win+R打開運行,輸入certmgr.msc,打開證書管理界面。

2.在受信任的根證書頒發機構中找到缺少的兩項。按照默認方式導出(不知道為什麼我這台電腦上有重復)。

3.證書復制到內網,打開證書管理界面,然後在受信任的根證書辦法機構中導入證書。

這樣就可以正常安裝VS2015 Update3了。

此外還要說明的是除了下載VS2015 Update3的光盤鏡像外,還可以離線安裝文件,把安裝文件考到離線環境下安裝。具體方法是:在官方下載頁面中下載Web安裝程序

https://www.visualstudio.com/downloads/download-visual-studio-vs

以community版本為例,在安裝程序所在目錄打開命令行窗口,輸入:vs_community_CHS.exe /layout 這樣就可以把文件都離線下來,貌似比光盤鏡像內容要多一些。

0x02 安裝DotNetCore.1.0.0-VS2015Tools.Preview2

這個可以用與VS2015同樣的方式離線,下載在線安裝程序後,在安裝程序所在目錄打開命令行窗口輸入:

DotNetCore.1.0.0-VS2015Tools.Preview2.exe /layout

即可把安裝文件下載到相同目錄下packages文件夾裡,其中也包含了.Net Core SDK。比較慘的是我的內網電腦裝了某國產殺毒軟件,每次一運行安裝就提示我惡意操作然後強行中止安裝,我又沒權限關掉殺毒軟件,所以只好在一個一個包手動裝的,不過好在可以正常使用。因為離線環境總是缺這缺那的,如果安裝過程中出現什麼問題,只要查看錯誤log,然後解決就可以。

0x03 如何使用nuget

.NET Core的包依賴全都使用nuget,在線環境下自然是方便,離線環境下就稍麻煩一點了。在安裝VS2015 Update3時,.NET Core所需的官方依賴包都已經安裝在了(默認安裝)C:\Program Files (x86)\Microsoft SDKs\NuGetPackages目錄下,在nuget管理中也可以看到這是默認的離線包目錄,我們需要什麼樣的包只要把它復制到這個目錄,在nuget管理中的程序包源選擇離線的源即可。

那麼怎麼獲得離線安裝包呢,我們在用nuget安裝程序包時會在C:\Users\{你的用戶名}\.nuget\packages目錄進行緩存,只要找到緩存的包復制到離線環境,放到nuget離線目錄即可。

另外還有一種方式就是在內網架設nuget服務,這個也十分容易,

http://edi.wang/Post/2012/12/15/setup-private-nuget-server

阿迪王這篇網文章比較詳細,可以參考。考慮到要用的.NET Core比較新,我用的最新版的NugetServer是可以用的,其它版本的沒試。服務架設好了在nuget管理中添加新的包源就可以了。

這種方式同樣可以添加其它項目(例如WPF)的包依賴。

0x04 使用VS Code開發

除了VS外也可以使用VS Code開發.NET Core,我的方式是在能聯網的電腦上下載VS Code,然後裝一堆需要的插件,插件都裝在了C:\Users\{你的用戶名}\.vscode\extensions目錄下,只要把這個目錄打包考到離線環境中,解壓到相同目錄下就能用了。

另外用VS Code開發在dotnet restore時需要加-s參數指明包源:dotnet restore -s 包目錄。或者在項目的根目錄添加nuget.config文件

此文件可在github上下載: https://github.com/aspnet/Home/blob/dev/samples/latest/HelloMvc/NuGet.Config

<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <packageSources>

    <clear />

    <add key="AspNetVNext" value="https://www.myget.org/F/aspnetvnext/api/v2" />

    <add key="NuGetorg" value="https://nuget.org/api/v2/" />

  </packageSources>

</configuration>

在packageSources中添加自己的包源。

0x05 寫在最後

整個過程還是花了一些時間的,中途有幾次很郁悶不想搞了。但實在很想在工作環境中用.NET Core做點東西試試,幸好最終搞定了。想想看還是有些小激動的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved