使用VS Code开发调试.NET Core 多项目

使用Visual Studio Code(VS Code)开发调试.NET Core和ASP.NET Core 多项目multiple project。

之前讲解过如果使用Visual Studio Code(VS Code) 开发单个.NET Core和ASP.NET Core项目,大家也都知道如何开发。

多项目可能有些人还不大了解,今天给大家介绍一下。

本文将介绍如何开发调试多项目,及项目的引用,以及多项目的切换。 

环境安装

本文开发环境:

WIN10 x64

Visual Studio Code 1.4.0

C# 插件 1.3.0

.NET Core SDK Installer:

https://download.microsoft.com/download/A/3/8/A38489F3-9777-41DD-83F8-2CBDFAB2520C/packages/DotNetCore.1.0.0-SDK.Preview2-x64.exe

SDK 如果安装过 RC2及之前版本,请先卸载然后再安装。

更多系统版本下载:

https://www.microsoft.com/net/download

VS Code :

https://code.visualstudio.com/

VS Code C#插件:

点击控制面板左侧扩展,然后搜索C# 安装即可。

 

安装好插件以后重启VS Code。

环境安装好了,就可以正式开始了。

创建多项目

创建项目采用dotnet new 命令,更多dotnet 命令使用,可以参考: http://www.cnblogs.com/linezero/p/dotnet.html

这里我先创建一个名为:dotnet 的根目录。

然后依次创建 multiapp  multiapplib multiappweb。

所有命令如下:

mkdir dotnet
cd dotnetmkdir multiapp
mkdir multiapplib
mkdir multiappwebcd multiappdotnet newcd ..cd multiapplibdotnet new -t libcd ..cd multiappwebdotnet new -t web


所有命令执行完以后,得到如下目录。

 

VS Code 开发调试

下面我们就使用VS Code 打开文件夹 dotnet 。注意:这里打开的文件夹是 dotnet

打开文件夹我们打开multiapp 的Program.cs。

然后 注意右下角 Running ,这里我们点击选择multiapp

会提示是否创建文件及还原,这里我们选择Yes和Restore。

 

下面我们来添加项目引用。打开multiapp 的project.json ,添加如下引用:


{

  "version": "1.0.0-*",

  "buildOptions": {

    "debugType": "portable",

    "emitEntryPoint": true

  },

  "dependencies": {},

  "frameworks": {

    "netcoreapp1.0": {

      "dependencies": {

        "Microsoft.NETCore.App": {

          "type": "platform",

          "version": "1.0.0"

        },

        "multiapplib": {

          "version": "1.0.0",

          "target": "project"

        }

      },

      "imports": "dnxcore50"

    }

  }

}

在 dependencies 节点中加入 multiapplib 

然后在 multiapplib 加入User 类。然后再multiapp 中使用。

public class User

    {

        public int Id { get; set; }

        public string UserName { get; set; }

        public string Password { get; set; }


        public override string ToString()

        {

            return $"user:{UserName}{Password}";

        }

    }


加好User Class 我们首先右下角点击一下multiapp 切换到 multiapplib。

等到Running 变成 Switch project 我们再切换到 multiapp。这样就会有智能提示。

然后在multiapp 中添加命令空间,然后使用。

调试就能正常的调试及,进入类库调试。

 

下面我们以multiappweb 为主项目引用 multiapplib ,然后调试ASP.NET Core 多项目。

这里由于一个目录没办法存在两个主项目,所以我们先删除掉dotnet文件夹下 .vscode。

然后打开dotnet 文件夹,选择项目 multiappweb,然后再让VS Code生成.vscode。

 

同样添加引用,

   "dependencies": { 
    
"multiapplib": {  
       
"version": "1.0.0",    
       
"target": "project"},...

我们在Controller 中使用

using ClassLibrary;


        public IActionResult Index()

        {

            User u=new User();

            u.Id=1;

            u.UserName="linezero";

            u.Password="123123";  

            return View(u);

        }


对应的View
@model ClassLibrary.User<h1>@Model.UserName</h1><h3>@Model.ToString()</h3>

 

代码编写好以后,我们调试程序会发现出错,因为ASP.NET Core 读取不到正确的路径。

默认生成的配置文件,将dotnet 做为了目录。这里我们要做一个更改。

打开dotnet 目录下的 .vscode 的launch.json

将cwd 及sourceFileMap 都加上multiappweb 路径。

然后我们再来调试。

成功执行,默认将会为我们打开 http://localhost:5000/ 这里没有样式是因为bootstrap没有下载下来。

 

同样的我们可以调试代码,也可以进到类库。

原文地址:http://www.cnblogs.com/linezero/p/vscodemultipleproject.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git 在ssh情况下提交代码

git --version --git版本 用户目录&#xff08;~/&#xff09; vim ~/.gitconfig --编辑用户目录&#xff08;~/&#xff09;下的 .gitconfig文件 --输入i 进入编辑模式 [user] nameRosen email1091947832qq.com [alias] --配置别名 cocheckout 切换分…

如果你也会C#,那不妨了解下F#(1):F# 数据类型

简单介绍 F#&#xff08;与C#一样&#xff0c;念作“F Sharp”&#xff09;是一种基于.Net框架的强类型、静态类型的函数式编程语言。可以说C#是一门包含函数式编程的面向对象编程语言&#xff0c;而F#是一门包含面向对象的函数式编程语言。可以查看官方文档了解更多信息。 本系…

String path = request.getContextPath()和String basePath = request.getScheme()

在JSP当中我们会用此代码来拼接路径&#xff0c;所以此语句是用来拼装当前网页的相对路径的。 <% String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()":"request.getServerPort()path"/&…

Java中的函数传递

转载自 Java中的函数传递在C和C中&#xff0c;函数的传递可以通过函数指针来实现。在C#中&#xff0c;函数传递可以通过委托、Action、Func来实现。Java中没有函数指针、没有委托&#xff0c;那函数要如何传递呢&#xff1f; 可以通过以下两种方式实现。 1、通过handler&#…

使用Nginx搭建图片服务器(windows7)

1.进入官网下载nginx压缩包&#xff0c;解压后目录如下 2.在解压后的conf/nginx.conf配置文件中&#xff0c;添加添加或者修改带有颜色地方的代码 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/e…

配置mybatis-plus逻辑删除

一、在pom文件里导入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis.plus.boot.starter}</version> </dependency>二、在yml文件或者在properties…

Jexus支持HTTPS协议

众所周知&#xff0c;在HTTPS页面请求HTTP资料的时候&#xff0c;现代浏览器会拦截&#xff0c;提示用户是否继续&#xff0c;或者直接拦截&#xff0c;提示都不出来。 最近给自己做了个快速书签工具&#xff0c;点击书签就直接把书签发送到服务器地址&#xff0c;然后保存到我…

java面向对象高级分层实例_实体类

package bdqn.studentSys.entity; /*** 学生实体类* author Administrator**/ public class Student {private String name;//姓名private String pwd;//密码private int age;//年龄private int stuno;public int getStuno() {return stuno;}public void setStuno(int stuno) {…

虚拟机安装xp经验

虚拟机安装xp经验 1.打开vm软件 2.创建虚拟机 选中单个文件 用pe系统打开 3.用驱动精灵 创建2个分区50g 50g (一定要创建2个gost版要在d盘分配文件夹的)分配8g内存 4核cpu 4.将系统安装到分区上

JAVA实现汉字转换为拼音 pinyin4j/JPinyin

转载自 JAVA实现汉字转换为拼音 pinyin4j/JPinyin在项目中经常会遇到需求用户输入汉字后转换为拼音的场景&#xff0c;比如说通讯录&#xff0c;就会要求按名字首字符发音排序&#xff0c;如果自己写实现这方面的功能是个很好大的工程&#xff0c;还好网上有公开的第三方jar支…

给数据库表字段设置默认值

一、在数据库表中的操作方法 当表中的字段是varchar字段时可以这样设置&#xff1a; 例如我要设置stats&#xff08;状态这个字段默认为"1"&#xff09;&#xff0c;在创建表的时候sql语句可以这样写 stats varchar(1) CHARACTER SET utf8 NOT NULL DEFAULT 1 COMM…

Myeclipse创建第一个web项目

创建web项目 web project 创建java项目 选java project

使用cardme读写VCard文件,实现批量导入导出电话簿

转载自 使用cardme读写VCard文件&#xff0c;实现批量导入导出电话簿首先下载jar包cardme。 http://sourceforge.net/projects/cardme/?sourcenavbar cardme是基于java语言的操作vCard(后缀vcf)文件的开源项目。 在项目中有一个类net.sourceforge.cardme.engine.TestParser。是…

.NET Core系列 :4 测试

2016.6.27 微软已经正式发布了.NET Core 1.0 RTM&#xff0c;但是工具链还是预览版&#xff0c;同样的大量的开源测试库也都是至少发布了Alpha测试版支持.NET Core, 这篇文章 The State of .Net Core Testing Today 就将各个开源测试库的目前进展进行了汇总。本文我们的目的是在…

java高效字符串首字母大小写转换

通过找到一个移动ASCII的方式来处理字符串首字母大小写的问题 我们都知道在ascii 码表中 a的ASCIII码值是65而A的ASCII码值是 97 两个之间的差值是 32&#xff0c;所以&#xff0c;如果我们需要把一个小写字母转化成大写字母&#xff0c;那么我们只需要把这个 char 字符的asci…

java面向对象高级分层实例_BaseDao

package bdqn.studentSys.Dao; /*** 数据库帮助类* author Administrator**/ import java.sql.*; public class BaseDao {Connection connnull;PreparedStatement psnull;ResultSet rsnull;//连接数据库public void getConnection(){try {Class.forName("com.microsoft.sq…

Myeclipse 创建web项目的一些基本操作

上面是tomcat的工作路径 什么是工作路径呢&#xff1f; 启动tomcat 就开始监听8080端口了 在浏览器数据url 请求web请求 就会显示出index.jsp 上篇博客中有讲到更改tomcat端口 但是在运行中的修改是不会生效的 必须停止 再重启 怎么引入jar包&#xff1f; 支持中文 这样…

Java制作VCARD

转载自 Java制作VCARD 简介: vCard是电子名片的文件格式标准。它一般附加在电子邮件之后,但也可以用于其它场合(如在互联网上相互交换)。vCard可包含的信息有:姓名、地址资讯、电话号码、URL,logo,相片等。——摘自维基百科https://zh.wikipedia.org/wiki/VCardvCard规范容许…

java反射机制的简单使用和优缺点

java反射机制的使用 一、反射是什么&#xff1f; JAVA反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够获取这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用它的任意一个方法和属性&#xff1b;这种动态获取类信息以及动态调…

有关技术分享

有人说&#xff0c;如果你想掌握好一门技术&#xff0c;那么最好的方式就是去当老师&#xff0c;去教会别人这门技术。在教别人的过程中&#xff0c;你必须要去深入的了解这门技术的方方面面&#xff0c;同时还要思考怎么才能让别人理解。每一个做过的人都知道&#xff0c;这要…