我正在使用Visual Studio和ASP.NET Core并使用F5或Ctrl + F5运行网站(不直接使用命令行)。我想使用“dotnet watch”功能来确保动态获取所有更改以避免再次启动服务器。似乎使用命令行你会使用“dotnet watch run”,但Visual Studio使用launchSettings.json并在幕后操作,如果我理解正确的话。
如何在那里连接“dotnet watch”?
答案 0 :(得分:13)
打开launchSettings.json并将其添加到profiles
。
"Watch": {
"executablePath": "C:\\Program Files\\dotnet\\dotnet.exe",
"commandLineArgs": "watch run",
"launchBrowser": true,
"launchUrl": "http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
打开project.json并将其添加到tools
。
"Microsoft.DotNet.Watcher.Tools": "1.0.0-preview2-final"
恢复后,我们可以在Visual Studio中观看。
答案 1 :(得分:12)
只需对@Flynn的答案进行一点更正。您需要添加一个
"commandName": "Executable"
“监视”配置文件的参数。另外,要定义网址,您应该不在“观看”配置文件中定义网址,而应在配置文件中使用
"commandName": "Program"
参数(它存在于由Visual Studio项目模板创建的默认launchsettings.json
中,因此,您的launchsettings.json
最终看起来像这样:
"AnyTest.WebClient": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"launchUrl": "",
"applicationUrl": "https://localhost:44353;http://localhost:51895",
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"
},
"Watch": {
"commandName": "Executable",
"workingDirectory": "$(ProjectDir)",
"executablePath": "dotnet.exe",
"commandLineArgs": "watch run"
}
我将launchBrowser
参数保留在Program
配置文件中,但未启动浏览器。但是,如果Executable
配置文件中存在此参数,则浏览器也不会启动,并且我找不到自动启动它的方法。
答案 2 :(得分:7)
"Watch": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "http://localhost:5000/",
"commandLineArgs": "watch run",
"workingDirectory": "$(ProjectDir)",
"executablePath": "dotnet.exe",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
这将工作并启动浏览器。由于"commandName": "Project"
这一行而有效,这意味着它将与Kestrel服务器一起启动。
答案 3 :(得分:6)
如果要使用ASP.NET 2.x或3.x,则需要对其进行一些更改。
语法略有不同
"Watch": { "executablePath": "dotnet.exe", "workingDirectory": "$(ProjectDir)", "commandLineArgs": "watch run", "launchBrowser": true, "launchUrl": "http://localhost:5000/", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }
更新:添加了“ workingDirectory”并删除了特定路径。现在更通用了。
答案 4 :(得分:4)
接受的答案有效,但它已经有 4 年以上的历史了。下面是如何使其适用于 Visual Studio 2019(在我的情况下为 v16.8.5)。
在 profiles
的 launchSettings.json
部分中,您添加一个新配置文件,例如“API Watch”,内容如下:
"API Watch": {
"commandName": "Executable",
"executablePath": "dotnet",
"commandLineArgs": "watch run",
"workingDirectory": "$(ProjectDir)",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"dotnetRunMessages": "true"
}
然后您在构建配置文件下拉列表中选择它:
现在,当您运行它时,无论是否启用调试模式,都会自动进行重新构建和浏览器刷新(我使用 Swagger UI 作为默认页面)。
在调试模式下使用它的一个注意事项是,Visual Studio 会将更改标记为绿色,并表示在重新启动之前不会应用它们。我可以确认这不是真的,而且更改确实反映在 dotnet watch run
的自动重建功能中。只是 VS 2019 搞糊涂了,从旧(标准)的角度看待事物。
答案 5 :(得分:2)
打开launchSettings.json并将其添加到配置文件中。
X.Y
答案 6 :(得分:2)
对于阅读这些非常旧的答案并想知道它是否已经成熟的其他人,那么您应该阅读 2020 年 11 月 22 日的这篇博文。
https://dev.to/juxant/auto-refresh-with-dotnet-watch-for-asp-net-core-projects-20no
Visual Studio 2019 现在有一个 ASP.NET Core 设置,可以在使用 IIS Express 时进行刷新。默认情况下它是不启用的。
您仍然可以使用文章中所述的 launchSettings.json 文件。
答案 7 :(得分:1)
在 Visual Studio 2019 中
{
"profiles": {
"msteamsimc": {
"commandName": "Executable",
"executablePath": "dotnet",
"commandLineArgs": "watch run",
"workingDirectory": "$(ProjectDir)",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
},
"dotnetRunMessages": "true",
"applicationUrl": "https://localhost:5001;http://localhost:5000"
}
}
}
这里是配置图片
这里是工作项目的图片 2021-01-11