在离线环境中使用.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

  1. <?xml version="1.0" encoding="utf-8"?>
  2.  
  3. <configuration>
  4.  
  5. <packageSources>
  6.  
  7. <clear />
  8.  
  9. <add key="AspNetVNext" value="https://www.myget.org/F/aspnetvnext/api/v2" />
  10.  
  11. <add key="NuGetorg" value="https://nuget.org/api/v2/" />
  12.  
  13. </packageSources>
  14.  
  15. </configuration>

在packageSources中添加自己的包源。

0x05 写在最后

整个过程还是花了一些时间的,中途有几次很郁闷不想搞了。但实在很想在工作环境中用.NET Core做点东西试试,幸好最终搞定了。想想看还是有些小激动的。


更多内容欢迎访问我的博客:http://www.durow.vip

在离线环境中使用.NET Core的更多相关文章

  1. 在离线环境中发布.NET Core至Windows Server 2008

    在离线环境中发布.NET Core至Windows Server 2008 0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面作为测试,现在打算发布 ...

  2. [转]在离线环境中发布.NET Core至Windows Server 2008

    本文转自:http://www.cnblogs.com/durow/p/5765145.html 0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面 ...

  3. 在离线环境中安装Visual Stuido 2017

    在离线环境中安装Visual Stuido 2017 0x00 写在前面的废话 因为工作上大多数都是在离线环境中进行的,进出离线环境很麻烦,所以之前很长一段时间都在使用VS2010.后来尝试换了VS2 ...

  4. linux环境中nagios(nagios core)安装?nagios安装?

    需求描述: 最近准备给线上生产环境部署监控平台,对各个系统的资源使用情况,服务进行监控,采用nagios core版本进行部署, nagios core是开源版本的软件,是免费的nagios XI是上 ...

  5. 离线环境安装使用 Ansible

    之前写了一篇介绍 Ansible 的文章 ,今天回顾看来写的有些匆忙,一些具体的操作步骤都没有讲明白,不利于读者复现学习.最近又申请了一个几百台机器的环境,正好借此机会把如何在离线环境中使用 Ansi ...

  6. .NET跨平台之旅:在生产环境中上线第一个运行于Linux上的ASP.NET Core站点

    2016年7月10日,我们在生产环境中上线了第一个运行于Linux上的ASP.NET Core站点,这是一个简单的提供后端服务的ASP.NET Core Web API站点. 项目是在Windows上 ...

  7. ASP.NET Core 中文文档 第三章 原理(11)在多个环境中工作

    原文: Working with Multiple Environments 作者: Steve Smith 翻译: 刘浩杨 校对: 孟帅洋(书缘) ASP.NET Core 介绍了支持在多个环境中管 ...

  8. .NET跨平台之旅:生产环境中第2个跑在Linux上的ASP.NET Core站点

    今天我们在生产环境中上线了第2个跑在Linux上的ASP.NET Core站点.这是一个简单的Web API站点,通过命令行的方式调用安装在Linux服务器上的程序完成操作.之前用的是nodejs,现 ...

  9. 在Mac中安装.Net Core的开发环境

    在mac中部署dotnet core开发环境,我的MacOS版本号为OSX EI Capitan 10.11.6 1.安装brew homebrew官网推荐的安装命令如下: /usr/bin/ruby ...

随机推荐

  1. nodejs进阶(3)—路由处理

    1. url.parse(url)解析 该方法将一个URL字符串转换成对象并返回. url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) ...

  2. 如何用百度MIP快速搭建体验友好的移动页面

    在读这篇文章之前,请确定你已经了解MIP定义及加速原理.如果不确定的话,可以到MIP官网了解. 改造前期准备和注意事项: 你可以选择直接将原先的移动站点直接改成MIP站,也可以单独再做一套MIP站点与 ...

  3. 深究标准IO的缓存

    前言 在最近看了APUE的标准IO部分之后感觉对标准IO的缓存太模糊,没有搞明白,APUE中关于缓存的部分一笔带过,没有深究缓存的实现原理,这样一本被吹上天的书为什么不讲透彻呢?今天早上爬起来赶紧找了 ...

  4. 初探Vue

    Vue.js(读音/vju:/,类似于view),是近来比较火的前端框架,但一直没有怎么具体了解.实现过,就知道个啥的MVVM啦,数据驱动啦,等这些关于Vue的虚概念. 由于最近,小生在公司中,负责开 ...

  5. 算法与数据结构(七) AOV网的拓扑排序

    今天博客的内容依然与图有关,今天博客的主题是关于拓扑排序的.拓扑排序是基于AOV网的,关于AOV网的概念,我想引用下方这句话来介绍: AOV网:在现代化管理中,人们常用有向图来描述和分析一项工程的计划 ...

  6. B样条基函数的定义和性质

    定义:令U={u0,u1,…,um}是一个单调不减的实数序列,即ui≤ui+1,i=0,1,…,m-1.其中,ui称为节点,U称为节点矢量,用Ni,p(u)表示第i个p次(p+1阶)B样条基函数,其定 ...

  7. Spring之初体验

                                     Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...

  8. BPM公文管理解决方案分享

    一.方案概述 公文作为一种规范性文书,具有法律性.指导性.政令性强的特点,是企事业单位政令上通下达的重要方式.及时.准确.安全地处理.控制和管理公文,方能保障企事业单位正常运转,确保组织权威和政令畅通 ...

  9. Android MVP+Retrofit+RxJava实践小结

    关于MVP.Retrofit.RxJava,之前已经分别做了分享,如果您还没有阅读过,可以猛戳: 1.Android MVP 实例 2.Android Retrofit 2.0使用 3.RxJava ...

  10. Centos 7 vsftpd ldap 配置

    #ldap 安裝配置 环境Centos7#安装 yum install -y openldap openldap-clients openldap-servers migrationtools pam ...