搭建一个舒适的 .NET Core 开发环境
最近,一直在往.Net Core上迁移,随着工作的深入,发现.Net Core比.Net Framework好玩多了。不过目前还在windows下开发,虽然VisualStudio是宇宙第一神器,但是最近经常莫名其妙的重启,让我对它有些不放心了,干脆在MacOS搭建一个开发环境,还附带装13效果:)
- 首先安装.Net Core SDK
- 安装VS Code及插件
- 安装Git
- 配置Nuget源,推荐使用博客园的镜像
- 克隆代码,然后编译
- 由于涉及到跨域等问题,该项目必须使用域名地址寄宿
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseUrls("http://project.domain.com:9000")
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
- 因此需要手动设置host:打开Finder,Go -> Go to Folder:
/private/etc/找到hosts文件,添加我们的域名解析(如下最后一行):
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 project.domain.com
dotnet run跑一下,使用project.domain.com:9000访问由于调用了其他项目的API,而在MacOS中没有部署,所以报错了。而其他项目目前还是没有迁移,所以只能开虚拟机寄宿他们。
我们使用VMWare Fusion运行Windows10,设置Windows的上网方式为NAT,这样还有个问题,那就是Windows的IP地址是动态分配的,所以下一步就是固定Windows的IP地址。
打开终端,进入
/Library/Preferences/VMware Fusion/vmnet8,使用vi dhcpd.conf打开文件
subnet 192.168.199.0 netmask 255.255.255.0 {//子网掩码
range 192.168.199.128 192.168.199.254;//IP地址分布范围
option broadcast-address 192.168.199.255;//默认网关
option domain-name-servers 192.168.199.2;//DNS
option domain-name localdomain;
default-lease-time 1800; # default is 30 minutes
max-lease-time 7200; # default is 2 hours
option netbios-name-servers 192.168.199.2;
option routers 192.168.199.2;
}
host vmnet8 {
hardware ethernet 00:50:56:C0:00:08;
fixed-address 192.168.199.1;
option domain-name-servers 0.0.0.0;
option domain-name "";
option routers 0.0.0.0;
}
打开windows10的控制面板,设置当前的网络的属性中的TCP/IPV4的属性,根据上面的注释,依次填空,注意IP地址不能超过上面注释中的范围。
最后在Mac中ping一下虚拟机的地址,确认可以访问。
如此,就能固定虚拟机的IP地址了,现在只要把需要用到的项目的地址在Hosts文件中设置好即可。
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 project.domain.com
192.168.199.133 login.domain.com
192.168.199.133 common.domain.com
折腾了这么久,终于可以在Mac下愉快的玩耍了。
现在有个问题很尴尬,我们已经在hosts文件中,把域名指向了开发环境,那么我们自己要访问生产环境的话,还需要更改hosts,这时候就可以发挥shell脚本的功能了。
个人比较喜欢powershell,推荐各位童鞋尝试一下。
首先把/private/etc/hosts复制到~/Documents/shell/hosts/original/hosts,这个用于恢复正常环境,然后再复制一份到~/Documents/shell/hosts/modified/hosts,这一个用于开发环境。
然后再~/Documents/shell/下新建两个powershell脚本,如下:
Copy-Item /Users/当前用户名称/Documents/shell/hosts/modified/hosts /private/etc/hosts
Write-Host "It's workspace!"
保存为To_workspace.ps1。
Copy-Item /Users/当前用户名称/Documents/shell/hosts/original/hosts /private/etc//hosts
Write-Host "It's relax time!"
保存为To_relaxtime.ps1。
使用方式
切换到开发环境,打开终端,输入:powershell回车,把To_workspace.ps1直接拖进去回车。
同样的,把To_relaxtime.ps1拖进去回车就会恢复正常状态。
搭建一个舒适的 .NET Core 开发环境的更多相关文章
- 研究实验1_搭建一个精简的C语言开发环境(包含部分经典的前言)
综合研究: 在这部分内容中,将启示我们如何进行独立研究和深度思考(一定要注意这一点,相应的调整自己的学习思想).同时使我们: (1)认识到汇编语言对于深入理解其他领域知识的 ...
- 通过搭建一个精简的C语言开发环境了解一个C程序的执行过程
一.如何搭建一个精简的C语言开发环境 准备:下载TC2.0,并解压,比如说“d:\tc2.0\tc”目录 1.在C盘建立一个目录minic c:\ md minic 2.从解压的目录中将以下文件拷贝到 ...
- 腾讯云-搭建 .NET Core 开发环境
搭建 .NET Core 开发环境 安装 .Net Core 执行代码 任务时间:时间未知 .NET Core 的官方文档很详细,本实验带你建立一个.NET Core 1.1的Web运行环境,更多内容 ...
- .Net Core开发环境迁移到Linux
.Net开发环境迁移到Linux上去 .Net Core发布之前,多年来,.Net程序员的开发环境都在Windows上. 三街第一帅的我,虽然上班的8小时一直在windows上撸C#,但是下班时间一般 ...
- NET Core 开发环境
NET Core 开发环境 最近,一直在往.Net Core上迁移,随着工作的深入,发现.Net Core比.Net Framework好玩多了.不过目前还在windows下开发,虽然VisualSt ...
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
做了三年多的JavaEE开发了,在平时的JavaEE开发中,为了能够用最快的速度开发项目,一般都会选择使用Struts2,SpringMVC,Spring,Hibernate,MyBatis这些开源框 ...
- net core开发环境准备
net core开发环境准备 1.1 安装sdk和运行时 浏览器打开网址https://www.microsoft.com/net/download, 到.Net Core下载页面. 根据操作系统, ...
- 在Windows上搭建PhoneGAP(crodova)的开发环境
PhoneGAP是一个可以将web应用打包成移动应用的开源框架,使用它可以迅速的将HTML.CSS和JavaScript开发的web应用打包成跨平台的移动应用程序,而Apache Cordova是Ph ...
- 009 搭建Spark的maven本地windows开发环境以及测试
在看完下面的细节之后,就会发现,spark的开发,只需要hdfs加上带有scala的IDEA环境即可. 当run运行程序时,很快就可以运行结束. 为了可以看4040界面,需要将程序加上暂定程序,然后 ...
随机推荐
- Vue.js学习笔记(介绍)
Vue语法也可以进行APP开发,需要借助weex Vue.js是一套构建用户界面的框架,只关注视图层,便于与第三方库或既有项目整合. 在Vue中的核心概念:让用户不能操作Dom元素(减少不必要的dom ...
- JSONP方法简单封装
function myJsonp(url, data, callback) { //参数判断 if (Object.prototype.toString.call(data) == "[ob ...
- linux下c通过虚拟地址映射读写文件的代码
在代码过程中中,把开发过程中比较好的一些代码片段记录起来,如下的代码内容是关于 linux下c通过虚拟地址映射读写文件的代码,应该对小伙伴有些好处.#include<stdio.h>#in ...
- layUI 实现自定义弹窗
需求描述:点击表格中的数据,弹出一张具体信息表.描述的不是很清楚,放效果图,就明白了,上图 放心,能看到的数据,都不是生产数据,我造的假数据,但是功能效果就是这样,点击列表中的一行,弹出某些要展示的信 ...
- hiper工具查看页面加载时间
先需要下载 cnpm i hiper -g # 当我们省略协议头时,默认会在url前添加`https://` # 最简单的用法 hiper baidu.com # 如何url中含有任何参数,请使用双引 ...
- [NOI2018]你的名字
题解: 前68分非常简单 建立SAM 另一个串在上面跑,然后求一个树链的并 我们会发现暴力就是min(l^2,n)的 所以复杂度最多是nsqrt(n)的 当然我们也可以nlogn维护 把所有点按照df ...
- C++构造函数和析构函数的调用顺序
1.构造函数的调用顺序 基类构造函数.对象成员构造函数.派生类本身的构造函数 2.析构函数的调用顺序 派生类本身的析构函数.对象成员析构函数.基类析构函数(与构造顺序正好相反) 3.特例 局部对象,在 ...
- Windows下python2与python3兼容设置
分别安装python2与python3后,我想直接通过命令python2.pip2与python3.pip3区分: 分别进入python安装目录下,修改python.exe为python2.exe.p ...
- RESTful-2一分钟理解什么是REST和RESTful
从事web开发工作有一小段时间,REST风格的接口,这样的词汇总是出现在耳边,然后又没有完全的理解,您是不是有和我相同的疑问呢?那我们一起来一探究竟吧! 就是用URL定位资源,用HTTP描述操作. 知 ...
- Go之十大经典排序算法
1.冒泡排序 func bubble_sort(li []int) { for i := 0; i < len(li)-1; i++ { exchange := false for j := 0 ...