使用 dotnet watch 开发 ASP.NET Core 应用程序
2016-11-03 07:30
1171 查看
原文:Developing ASP.NET Core applications using dotnet watch
作者:Victor Hurdugaci
翻译:谢炀(Kiler)
校对:刘怡(AlexLEWIS)、许登洋(Seay)
在本教程中,我们将使用一个现有的计算两个数字之和以及乘积的 WebApi 应用程序来演示如何使用
在命令行控制台中,进入下载示例程序的目录并且运行下述命令:
1、
2、
3、
控制台输出将显示如下信息,表明该应用程序正在运行并等待请求:
$ dotnet run
Project WebApp (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling WebApp for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:02.6049991
Hosting environment: Production
Content root path: /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
在 Web 浏览器中,导航到
如果你导航到
我们会修复这个问题的。
项目中添加
1、按照下面例子的方式在 WebApp/project.json 文件的
"tools": {
"Microsoft.DotNet.Watcher.Tools": "1.0.0-preview2-final" //手工高亮
},
2、运行
控制台输出将显示如下信息:
log : Restoring packages for /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp/project.json...
log : Restoring packages for tool 'Microsoft.DotNet.Watcher.Tools' in /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp/project.json...
log : Installing Microsoft.DotNet.Watcher.Core 1.0.0-preview2-final.
log : Installing Microsoft.DotNet.Watcher.Tools 1.0.0-preview2-final.
使用
任何与
为了让
user$ dotnet watch run
[DotNetWatcher] info: Running dotnet with the following arguments: run
[DotNetWatcher] info: dotnet process id: 39746
Project WebApp (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
Hosting environment: Production
Content root path: /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
在
确认
让我们来修复上面发现的那个两个数相乘结果错误。
打开文件 WebApp/Controllers/MathController.cs。
我们故意在代码中引入了错误。
public static int Product(int a, int b)
{
// We have an intentional bug here
// + should be *
return a + b;//手工高亮
}通过把代码
[DotNetWatcher] info: File changed: /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp/Controllers/MathController.cs
[DotNetWatcher] info: Running dotnet with the following arguments: run
[DotNetWatcher] info: dotnet process id: 39940
Project WebApp (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling WebApp for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:03.3312829
Hosting environment: Production
Content root path: /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp
Now listening on: http://localhost:5000 Application started. Press Ctrl+C to shut down.验证
使用
文件监控也能运行其他
[DotNetWatcher] info: Running dotnet with the following arguments: test
[DotNetWatcher] info: dotnet process id: 40233
Project WebApp (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling WebApp for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:03.2127590
Project WebAppTests (.NETCoreApp,Version=v1.0) will be compiled because dependencies changed
Compiling WebAppTests for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:02.1204052
xUnit.net .NET CLI test runner (64-bit .NET Core osx.10.11-x64)
Discovering: WebAppTests
Discovered: WebAppTests
Starting: WebAppTests
Finished: WebAppTests
=== TEST EXECUTION SUMMARY ===
WebAppTests Total: 2, Errors: 0, Failed: 0, Skipped: 0, Time: 0.260s
SUMMARY: Total: 1 targets, Passed: 1, Failed: 0.
[DotNetWatcher] info: dotnet exit code: 0
[DotNetWatcher] info: Waiting for a file to change before restarting dotnet...原文地址:http://www.cnblogs.com/dotNETCoreSG/p/aspnetcore-2_8-dotnet-watch.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
作者:Victor Hurdugaci
翻译:谢炀(Kiler)
校对:刘怡(AlexLEWIS)、许登洋(Seay)
介绍
dotnet watch是一个开发阶段在源文件发生变动的情况下使用
dotnet命令的工具。 当代码发生变动的时候可以用来执行编译,运行测试,或者发布操作。
在本教程中,我们将使用一个现有的计算两个数字之和以及乘积的 WebApi 应用程序来演示如何使用
dotnet watch。示例应用程序故意包含一个错误,作为本教程的一部分我们会修复它。
开始入门
开始下载 示例程序。示例程序包含两个项目,WebApp(Web 应用程序)以及
WebAppTests(Web 应用程序配套的单元测试项目)
在命令行控制台中,进入下载示例程序的目录并且运行下述命令:
1、
dotnet restore
2、
cd WebApp
3、
dotnet run
控制台输出将显示如下信息,表明该应用程序正在运行并等待请求:
$ dotnet run
Project WebApp (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling WebApp for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:02.6049991
Hosting environment: Production
Content root path: /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
在 Web 浏览器中,导航到
http://localhost:5000/api/math/sum?a=4&b=5页面你会看到结果
9。
如果你导航到
http://localhost:5000/api/math/product?a=4&b=5页面,你期望得到结果
20。但是实际上还是返回了
9。
我们会修复这个问题的。
项目中添加 dotnet watch
1、按照下面例子的方式在 WebApp/project.json 文件的 tools配置节中添加
Microsoft.DotNet.Watcher.Tools引用:
"tools": {
"Microsoft.DotNet.Watcher.Tools": "1.0.0-preview2-final" //手工高亮
},
2、运行
dotnet restore。
控制台输出将显示如下信息:
log : Restoring packages for /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp/project.json...
log : Restoring packages for tool 'Microsoft.DotNet.Watcher.Tools' in /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp/project.json...
log : Installing Microsoft.DotNet.Watcher.Core 1.0.0-preview2-final.
log : Installing Microsoft.DotNet.Watcher.Tools 1.0.0-preview2-final.
使用 dotnet watch
运行 dotnet
命令
任何与 dotnet有关的命令都可以以
dotnet watch这样的方式运行:例如:
命令 | 带上 watch 的命令Command |
---|---|
dotnet run | dotnet watch run |
dotnet run -f net451 | dotnet watch run -f net451 |
dotnet run -f net451 -- --arg1 | dotnet watch run -f net451 -- --arg1 |
dotnet test | dotnet watch test |
WebApp在 watcher 模式下运行,在
WebApp目录里面运行
dotnet watch run命令。 控制台输出将显示如下信息,表明
dotnet watch现在正在监控代码文件:
user$ dotnet watch run
[DotNetWatcher] info: Running dotnet with the following arguments: run
[DotNetWatcher] info: dotnet process id: 39746
Project WebApp (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
Hosting environment: Production
Content root path: /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
在 dotnet watch
模式进行修改
确认 dotnet watch模式运行中。
让我们来修复上面发现的那个两个数相乘结果错误。
打开文件 WebApp/Controllers/MathController.cs。
我们故意在代码中引入了错误。
public static int Product(int a, int b)
{
// We have an intentional bug here
// + should be *
return a + b;//手工高亮
}通过把代码
a + b替换为
a * b修复错误。保存文件。 控制台输出将显示如下信息,表明
dotnet watch检测到文件的改变并重启了应用程序。
[DotNetWatcher] info: File changed: /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp/Controllers/MathController.cs
[DotNetWatcher] info: Running dotnet with the following arguments: run
[DotNetWatcher] info: dotnet process id: 39940
Project WebApp (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling WebApp for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:03.3312829
Hosting environment: Production
Content root path: /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp
Now listening on: http://localhost:5000 Application started. Press Ctrl+C to shut down.验证
http://localhost:5000/api/math/product?a=4&b=5链接返回正确的结果。
使用 dotnet watch
运行测试
文件监控也能运行其他 dotnet命令例如
test或者
publish。1、打开
WebAppTests目录,确认 project.json 文件中已经包含了
dotnet watch。2、运行
dotnet watch test命令。如果你之前在
MathController中修复了错误你会看到控制台输出显示如下信息,否则你会看到测试失败的信息:一旦所有的测试运行起来了,监控器会指示他在下一次重新启动
dotnet test前会等待一个文件的变更。3、打开控制器 WebApp/Controllers/MathController.cs 文件并且修改代码。如果你没有修复乘法错误,马上修改。并保存。
dotnet watch将会检测到文件变更并且重新运行测试。 控制台输出将显示如下信息:[DotNetWatcher] info: File changed: /Users/user/dev/aspnet/Docs/aspnet/tutorials/dotnet-watch/sample/WebApp/Controllers/MathController.cs
[DotNetWatcher] info: Running dotnet with the following arguments: test
[DotNetWatcher] info: dotnet process id: 40233
Project WebApp (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling WebApp for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:03.2127590
Project WebAppTests (.NETCoreApp,Version=v1.0) will be compiled because dependencies changed
Compiling WebAppTests for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:02.1204052
xUnit.net .NET CLI test runner (64-bit .NET Core osx.10.11-x64)
Discovering: WebAppTests
Discovered: WebAppTests
Starting: WebAppTests
Finished: WebAppTests
=== TEST EXECUTION SUMMARY ===
WebAppTests Total: 2, Errors: 0, Failed: 0, Skipped: 0, Time: 0.260s
SUMMARY: Total: 1 targets, Passed: 1, Failed: 0.
[DotNetWatcher] info: dotnet exit code: 0
[DotNetWatcher] info: Waiting for a file to change before restarting dotnet...原文地址:http://www.cnblogs.com/dotNETCoreSG/p/aspnetcore-2_8-dotnet-watch.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
相关文章推荐
- 使用 dotnet watch 开发 ASP.NET Core 应用程序
- ASP.NET Core 中文文档 第二章 指南(8) 使用 dotnet watch 开发 ASP.NET Core 应用程序
- 使用 dotnet watch 开发 ASP.NET Core 应用程序
- [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果
- 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序
- 使用F#开发ASP.NET Core应用程序
- dotnet watch+vs code提升asp.net core开发效率
- dot watch+vs code提升asp.net core开发效率
- 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(四)-- Middleware
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(一)-- 起步
- ASP.NET Core开发-MVC 使用dotnet 命令创建Controller和View
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(二)-- Web Api Demo
- docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用
- docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用
- 使用VS Code开发ASP.NET 5 应用程序
- 使用PM2 启动ASP.NET Core应用程序
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(五)-- Filter
- ASP.NET Core 开发-Logging 使用NLog 写日志文件
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(二)-- Web Api Demo