文档章节

ASP.NET core 搭建于 Deepin 2015.4 记录

不避风云
 不避风云
发布于 2016/08/27 10:20
字数 1739
阅读 2325
收藏 1

2017-05-13更新,可用,自己傻逼才会在Linux下用微软的烂玩意!!!

最新参考网页:

参考网页:

抱歉,微软的东西比较恶心,网址竟然变了,一部分失效了。更改。如有异常,请自行解决。

一、生活如此不堪

因为开发速度太慢,导致老大看不过去了,直接购买了别人的网站,之前使用PHP开发的,别人的源码是ASP.NET的,所幸对方提供源码,要给对方升级?

二、搭建ASP.NET的工作环境

一直使用Linux Deepin操作系统,已经两三年了,没有在电脑上存在Windows系统了,突然要装个盗版windows系统,实在不情愿,折腾系统太费劲了。遂用 VS Code和ASP.NET Core一起,在Deepin下,可否更好一点呢?就这样搭建吧。

三、搭建过程

1、安装 .NET Core SDK

到这个网页,点击下载这个文件,假设下载到 Desktop 桌面。

由于默认不支持 deepin格式,需要修改一下这个脚本。

$ gedit ~/Desktop/dotnet-install.sh

搜素 debiandebian.8前,照瓢画葫芦,加入 “deepin.15.4"的内容。

                "deepin.15.4")
                    echo "debian"
                    return 0
                    ;;
                "debian.8")
                    echo "debian"
                    return 0
                    ;;
    ```
实现deepin 15.4 也可以直接安装。

接着输入如下命令。

```bash
$ sudo apt-get install curl libunwind8 gettext libicu52
$ sudo su
# mkdir -p /opt/dotnet
# cd /home/<user>/Desktop
# chmod u+x ./dotnet-install.sh
# ./dotnet-install.sh --version 1.0.4 --install-dir /opt/dotnet/

解释

  • 最开始使用 sudo 直接执行这些命令,发现 dotnet-install.sh 会报错。无解,遂切换至 root 用户下安装。
  • 最后一句的意思:选择 1.0.4 版本,安装目录为 /opt/dotnet/ 。这样选择的原因,是查到了这里 https://github.com/dotnet/core-setup/blob/master/README.md 找了一个老版本稳定点的下载。
  • 经过一个漫长的下载过程,可能会成功,也也可能失败。感觉微软这方面做的比较烦,无可奈何。

接下来就是建立链接了

$ sudo ln -s /opt/dotnet/dotnet /usr/local/bin

2、查看版本

dotnet --version

一般会看到版本号,跟上方的 1.0.4 一致。

3、简单例子

    cd
    mkdir www
    cd www
    mkdir test
    cd test
    dotnet new

新建一个可能会弹出如下问题。

Template Instantiation Commands for .NET Core CLI.

Usage: dotnet new [arguments] [options]

Arguments:
  template  The template to instantiate.

Options:
  -l|--list         List templates containing the specified name.
  -lang|--language  Specifies the language of the template to create
  -n|--name         The name for the output being created. If no name is specified, the name of the current directory is used.
  -o|--output       Location to place the generated output.
  -h|--help         Displays help for this command.
  -all|--show-all   Shows all templates


Segmentation fault

网上搜了很久,说了很多废话,貌似用之前的解决方案就可以了。

$ sudo dpkg -i /path/to/libcurl3_7.38.0-4+deb8u3_amd64.deb 

其中,libcurl3_7.38.0-4+deb8u3_amd64.deb 是在 debian 官网找到下载的。 下面继续测试。

$ sudo apt-get purge curl
$ sudo apt-mark hold libcurl3
$ cd ~/www/test
$ dotnet new

可能会弹出如下的界面


Templates                 Short Name      Language      Tags          
----------------------------------------------------------------------
Console Application       console         [C#], F#      Common/Console
Class library             classlib        [C#], F#      Common/Library
Unit Test Project         mstest          [C#], F#      Test/MSTest   
xUnit Test Project        xunit           [C#], F#      Test/xUnit    
ASP.NET Core Empty        web             [C#]          Web/Empty     
ASP.NET Core Web App      mvc             [C#], F#      Web/MVC       
ASP.NET Core Web API      webapi          [C#]          Web/WebAPI    
Solution File             sln                           Solution      

Examples:
    dotnet new mvc --auth None --framework netcoreapp1.1
    dotnet new mvc --framework netcoreapp1.1
    dotnet new --help

输入如下命令,

$ dotnet new mvc --auth None --framework netcoreapp1.1

新建并初始化,

 $   dotnet restore
 $   dotnet run

4、安装 Yeoman, Bower, Grunt, Gulp, ASP.NET core 等的生成器

本小点内容主要参考该书.

sudo npm install -g yo bower grunt-cli gulp
sudo npm install -g generator-aspnet

解释

  • 假设你已经成功安装了 npm,如需请百度怎么安装。

5、另外一个简单例子

    cd ~/www
    yo aspnet

解释

  • 按照输出提示,新建一个 WebLM 的网站,显示内容如下。
yo aspnet
? ==========================================================================
We're constantly looking for ways to make yo better! 
May we anonymously report usage statistics to improve the tool over time? 
More info: https://github.com/yeoman/insight & http://yeoman.io
========================================================================== Yes

     _-----_     ╭──────────────────────────╮
    |       |    │      Welcome to the      │
    |--(o)--|    │  marvellous ASP.NET Core │
   `---------´   │        generator!        │
    ( _´U`_ )    ╰──────────────────────────╯
    /___A___\   /
     |  ~  |     
   __'.___.'__   
 ´   `  |° ´ Y ` 

? What type of application do you want to create? Web Application
? Which UI framework would you like to use? Bootstrap (3.3.6)
? What's the name of your ASP.NET application? WebLW

解释

  • 接下来就是一大堆安装提示信息了,并有如下内容
Your project is now created, you can use the following commands to get going
    cd "WebLW"
    dotnet restore
    dotnet build (optional, build will also happen when it's run)
    dotnet ef database update (to create the SQLite database for the project)
    dotnet run

解释

  • 如果提示 bower ECMDERR 之类的信息,可能需要自行安装一些插件 比如
    cd ~/www/WebLW
    bower install

如果没有报错,继续使用上面提示的内容

    cd ~/www/WebLW
    dotnet restore
    dotnet build
    dotnet ef database update
    dotnet run

根据提示进入 http://localhost:5000/ 应该可以看到如下的界面了。 Deepin 15.2 安装 ASP.NET core

输入图片说明

6、安装 vscode 及其插件

这个比较傻瓜了,直接使用命令即可

sudo apt-get install vscode -y

其他插件安装可以自行百度。 我现在安装的插件有

  • donjayamanne.githistory-0.0.10
  • ms-vscode.csharp-1.4.0
  • felixfbecker.php-debug-1.9.4
  • ms-vscode.omnisharp-0.3.3
  • Kasik96.format-indent-1.3.0

四、打补丁

现在直接使用命令 code 打开 vscode,发现会弹出

[ERROR] Could not locate an OmniSharp server that supports your Linux distribution.

OmniSharp provides a richer C# editing experience, with features like IntelliSense and Find All References.
It is recommend that you download the version of OmniSharp that runs on Mono using the following steps:
    1. If it's not already installed, download and install Mono (https://www.mono-project.com)
    2. Download and untar the latest OmniSharp Mono release from  https://github.com/OmniSharp/omnisharp-roslyn/releases/
    3. In Visual Studio Code, select Preferences->User Settings to open settings.json.
    4. In settings.json, add a new setting: "omnisharp.path": "/path/to/omnisharp/OmniSharp.exe"
    5. In settings.json, add a new setting: "omnisharp.useMono": true
    6. Restart Visual Studio Code.

1、关于 Mono 的安装

    sudo apt-get install mono-complete

算是安装成功啦。

2、下载 OmniSharp Mono Release

到:https://github.com/OmniSharp/omnisharp-roslyn/releases/ 下载最新的,当前 v1.9-beta14,解压缩后,放在 ~/.vscode文件夹下

    cd ~/.vscode
    mkdir omnisharp
    cd omnisharp
    cp /path/to/omnisharp-mono.tar.gz ./
    tar zxvf omnisharp-mono.tar.gz
    ls

解释 会在这个文件夹下发现 ~/.vscode/omnisharp/OmniSharp.exe 文件,对就是这个带 exe 的文件,按照上面的说法,Visual Studio Code, 选择 Preferences->User Settings 打开 settings.json. 在 settings.json, 加上 "omnisharp.path": "/path/to/omnisharp/OmniSharp.exe" 和"omnisharp.useMono": true

// Place your settings in this file to overwrite the default settings
{
    "omnisharp.path": "/home/litianci/.vscode/omnisharp/OmniSharp.exe",
    "omnisharp.useMono": true
}

解释

  • 里面的地址需要根据实际情况修改。
  • 重启 vscode.

2、安装 dnvm, dnv,dnx 等

curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh

安装好了 dnvm, 需要自己首先安装 curl

dnvm upgrade -r mono
dnvm upgrade -r coreclr # 先安装吧,不为过。
sudo apt-get install mono-complete # 安装全套,我也不知道需要不需要更多内容
sudo apt-get install libuv1 # 安装 libuv1

3、使用 vscode 打开上述例子。

这里不再废话,有问题,欢迎下面留言。

五、VSCode 一个复杂的 quizz 例子

代码复制于 http://download.csdn.net/detail/u013003382/9498661 某章节,下面试着在 deepin 下熟悉 C# 和 ASP.NET core 的一般编写过程。(待续)

© 著作权归作者所有

不避风云
粉丝 24
博文 94
码字总数 73549
作品 0
闵行
程序员
私信 提问
加载中

评论(4)

不避风云
不避风云 博主

引用来自“月影南溪”的评论

老大,我想问下那个段错误是怎么解决的?请原谅我英语不太好~~~
你的是什么操作系统?我的是 deepin 15.3 64bit,其中解决方案是重新安装libcurl。
百度 libcurl3_7.38.0-4+deb8u3_amd64.deb然后下载,我是在 debian.org下载的 https://packages.debian.org/jessie/amd64/libcurl3/download 。

接着安装,

sudo dpkg -i libcurl3_7.38.0-4+deb8u3_amd64.deb

就好了,上述那个 deb 文件需要你指明路径的。
月影南溪
月影南溪
老大,我想问下那个段错误是怎么解决的?请原谅我英语不太好~~~
不避风云
不避风云 博主
第五部分,打算写 deepin15.2 下制作quiz的例子。熟悉 ASP.NET
不避风云
不避风云 博主
未完成
asp.net core系列

在开发asp.net core过程中,记录下使用知识的点点滴滴,方便初次接触的人参考学习。技术有你,共同前行。 asp.net core下的RequestBody和RequestForm提交 asp.net core跨域访问ajax的验证访问...

桂素伟
2017/02/07
0
0
Asp.Net Core 2.0 项目实战(9) 日志记录,基于Nlog或Microsoft.Extensions.Logging的实现及调用实例

Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前...

郑州-在路上
2018/03/26
0
0
Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密

Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前...

郑州-在路上
2018/04/26
0
0
Web 框架 - ASP.NET Core

ASP.NET Core 是一个新的开源和跨平台的框架,用于构建如 Web 应用、物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序。ASP.NET Core 应用可运行于 .NET Core 和完整的...

匿名
10/15
220
1
ASP.NET Core中使用Graylog记录日志

以下基于.NET Core 2.1 定义GrayLog日志记录中间件: 中间件代码: 日志记录代码: Graylog日志配置: 注册中间件到请求处理管道: 以上日志记录了如下几个方面: 日志信息Id 请求来源 请求基...

雪飞鸿
01/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
55分钟前
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
57分钟前
5
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
6
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部