title author date CreateTime categories
VisualStudio 使用多个环境进行调试
lindexi
2018-09-30 18:39:26 +0800
2018-8-28 19:2:23 +0800
VisualStudio 调试

在 VisualStudio 2017 支持使用 launchSettings.json 文件定义多个不同的环境进行调试

先给大家一张图看一下效果

可以看到原来的是启动的按钮,现在被我修改为 lindexi 和 逗比,那么我是如何做到的?这个有什么用呢?

实际上这个是通过 launchSettings.json 设置的,可以在 VisualStudio 里设置也可以在文件直接修改。

在调试添加

先创建一个 dotnet core 的程序,为什么需要创建这样的一个程序?因为在 dotnet core 项目创建出来就是新的 VisualStudio 2017 的项目格式。

如果创建的是WPF 程序就需要 从以前的项目格式迁移到 VS2017 新项目格式

创建完成请右击项目属性,可以看到下面界面

点击调试可以看到配置文件,默认的配置文件就是和项目相同,这时只需要点击新建按钮然后输入新的名字,就可以创建新的配置

在不同的配置可以选择使用启动的是什么,如项目。选择项目就是启动这个项目进行调试,可以在调试的时候输入应用程序参数和设置工作文件夹。

这里的应用程序参数就是在运行控制台的时候传入的参数。如果运行的是 WPF 程序也可以使用 Environment.CommandLine 拿到传入的参数。下面我随意添加一个字符,然后在主函数输出

我在主函数输出可以看到下面代码

那么工作文件夹又是做什么的呢?

我将工作文件夹修改为 E:\lindexi 现在尝试在主函数运行下面的代码

在主函数添加下面代码然后运行

            var file = new FileInfo("欢迎访问我博客 lindexi.github.io.txt");

            Console.WriteLine(file.FullName);

可以看到路径相对的文件夹就修改了,所以设置工作文件夹会修改软件的找 dll 和文件的文件夹。

需要注意,添加的工作文件夹需要是存在的,不然会出现下面提示

启动除了使用项目还可以使用外面的程序,可以选择启动可执行文件,然后写入可执行文件的路径

这时的 VisualStudio 执行的就是这个传入的软件,这个就和使用调试附加到进程一样。

这个问题是在堆栈网的以为大神问的,他问启动的几个选项有什么不同,于是我就这样回答

The first is IIS Express that will use IIS Express to host this project and the second is Project that will run this project and debugging it.

If your project include Main that you can select Project to Launch and VisualStudio will debugging it.

The last one is Executable that will use the other application to run this project like dotnet run xx.dll and you should set the running application path when you select Executable and set some arguments. The VisualStudio will debugging the running application like use attached process.

See:Working with Environments and Launch Settings in ASP.NET Core

Use multiple environments in ASP.NET Core

链接:https://stackoverflow.com/q/48221913/6116637

修改文件

如果不想使用 VisualStudio 可以直接打开 Properties\launchSettings.json 如果这个文件还不存在可以自己创建。

文件的格式是

{
"profiles":
{
"配置文件1":
{
"commandName": "Project",
"commandLineArgs": " 欢迎访问我博客 lindexi.github.io 如果发现有任何不懂欢迎发邮件 ",
"workingDirectory": "E:\\lindexi"
},
"配置文件2":
{
"commandName": "Executable",
"executablePath": "D:\\程序\\baozitongregex.exe",
"commandLineArgs": "欢迎访问我博客 lindexi.oschina.io 如果发现有任何不懂欢迎发邮件"
}
}
}

必须指定配置文件的 commandName ,其他的如 commandLineArgs 这些都是可以不写的

可以添加的值是

  • executablePath 只有 commandName 设置为 Executable 时才可以使用,用于设置启动的软件

  • commandLineArgs 传入的命令行

  • workingDirectory 工作文件夹

  • environmentVariables 环境变量

环境变量的格式是

      "environmentVariables":
{
"环境变量1": "值"
}

参见:Use multiple environments in ASP.NET Core

Working with Environments and Launch Settings in ASP.NET Core

2018-9-30-VisualStudio-使用多个环境进行调试的更多相关文章

  1. VisualStudio 使用多个环境进行调试

    在 VisualStudio 2017 支持使用 launchSettings.json 文件定义多个不同的环境进行调试 先给大家一张图看一下效果 可以看到原来的是启动的按钮,现在被我修改为 lind ...

  2. 2019-11-29-VisualStudio-使用多个环境进行调试

    title author date CreateTime categories VisualStudio 使用多个环境进行调试 lindexi 2019-11-29 08:58:49 +0800 20 ...

  3. 2018.12.30【NOIP提高组】模拟赛C组总结

    2018.12.30[NOIP提高组]模拟赛C组总结 今天成功回归开始做比赛 感觉十分良(zhōng)好(chà). 统计数字(count.pas/c/cpp) 字符串的展开(expand.pas/c ...

  4. 2018.8.30 nowcoder oi赛制测试1

    2018.8.30 nowcoder oi赛制测试1 普及组难度,发现了一些问题 A 题目大意:求斐波那契数列\(f(k-1)f(k+1)-f(k)^2\),范围极大 打表可得规律 其实是卡西尼恒等式 ...

  5. 通过Dapr实现一个简单的基于.net的微服务电商系统(十四)——开发环境容器调试小技巧

    之前有很多同学提到如何做容器调试,特别是k8s环境下的容器调试,今天就讲讲我是如何调试的.大家都知道在vs自带的创建项目模板里勾选docker即可通过F5启动docker容器调试.但是对于启动在k8s ...

  6. 突破瓶颈,对比学习:Eclipse开发环境与VS开发环境的调试对比

    曾经看了不少Java和Android的相关知识,不过光看不练易失忆,所以,还是写点文字,除了加强下记忆,也证明我曾经学过~~~ 突破瓶颈,对比学习: 学习一门语言,开发环境很重,对于VS的方形线条开发 ...

  7. PHP代码审计1-审计环境与调试函数

    审计环境与调试函数 审计环境 测试环境 常用集成环境:phpStudy.WampServer #不同的操作系统下,漏洞测试的结果也可能不一样 PHP编写工具 EditPlu Notepad++ 代码审 ...

  8. 【Linux开发】【Qt开发】配置tslibs触摸屏库环境设置调试对应的设备挂载点

    [Linux开发][Qt开发]配置tslibs触摸屏库环境设置调试对应的设备挂载点 标签(空格分隔): [Linux开发] [Qt开发] 比如: cat /dev/input/mice cat /de ...

  9. 2018.10.30 mac环境下卸载和安装mysql及安装过程遇到的一些问题解决方案

    Mac下mysql的安装与卸载 配置初始化密码修改 第一:首先去官网网站下载Mysql软件 https://downloads.mysql.com/archives/community/ 记住选择对应 ...

随机推荐

  1. 2019阿里云开年Hi购季大促主会场全攻略!

    2019阿里云云上采购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段.3月04日-3月16日的新购满返+5折抢购阶段.3月16日-3月 ...

  2. bzoj 3029 守卫者的挑战——概率期望dp+状态数思考

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3029 先随便写了个dfs,记录“前 i 次.成功 j 次.容量-残片=k”的概率.因为是否可 ...

  3. input[type=file]上传图片及转为base64码以及预览

    <input type="file" id="imgurl" capture="camera" accept="image/ ...

  4. 用js实现base64编码器

    base-64作为常见的编码函数,在基本认证.摘要认证以及一些HTTP扩展中得到了大量应用.在前端领域,也常常把图片转换为base-64编码在网络中传输.本文将详细介绍base64的原理及用js实现b ...

  5. h5+css3+Jq

    1.侧边栏划出一个信息框 通常鼠标浮动侧边栏都会划出一个信息框,每个信息框距离侧边栏的距离是相等的,所以处理此问题的方法就是 量取信息框距离侧边栏的距离,信息框设置绝对定位,父元素设置相对定位之后,信 ...

  6. spring四种依赖注入方式(转)

    spring四种依赖注入方式!! 平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提 ...

  7. java opencv 4.0.1安装配置

    如果没有把dll扔到jdk会报错 Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no ...

  8. java开发岗位面试整理

    一.Java基础 1. String类为什么是final的 2. HashMap的源码,实现原理,底层结构. 3. 说说你知道的几个Java集合类:list.set.queue.map实现类. 4. ...

  9. CentOS安装手册

    CentOS6.5在VMware10中安装 1.启动VMware的画面 2.点击File--->New Virtual Machine 创建一台新虚拟机 3.在弹出框中选择典型安装 4.选择I ...

  10. day36 06-Hibernate抓取策略:set集合上的抓取策略

    你在做查询的时候它可以帮你关联出它的一些相应的关联对象.那么它关联这个对象的时候是在什么时候发送的这些语句以及它是如何把这些数据拿出来的? 知道延迟检索是怎么回事了,而且它也能够产生这个代理对象.当你 ...