asp.net-core - 如果使用自定义启动配置文件,则需要手动重新编译
问题描述
如果我使用https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-2.2中描述的自定义launchSettings-Profile ,我必须手动构建应用程序才能获得更改 - 也适用于 razor-html 中的简单更改。
我创建了一个新的 Asp.net 核心网页应用程序,我使用 Ctrl+F5 启动它。现在我能
- 对剃刀文件的 HTML 进行一些更改
- 保存 *.cshtml 文件而不重建
- 切换到浏览器
- 用 F5 刷新(如果我不使用 BrowserLink)
- 我看到了我的变化 - 一切都好
现在我在 Properties\launchSettings.json 中创建自定义的 launchProfile:
"HomeOffice": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "HomeOffice"
}
}
我还为我的自定义连接字符串创建了一个appsettings.HomeOffice.json。
我在 VisualStudio 的下拉框中选择我的新配置文件,使用 Ctrl-F5 重新启动应用程序。该应用程序正在使用自定义配置运行。
但是如果我现在对 html 进行一些更改,我必须重新构建项目。. 这对我来说很糟糕!
有任何想法吗?
解决方案
自动重建仅在使用 Kestrel(使用或不使用 IIS/IIS Express 作为反向代理)运行时才有效。在 ASP.NET Core 2.2 中,默认托管进程模型从进程外(即 IIS 反向代理后的 Kestrel)更改为进程内(即直接在 IIS 的应用程序池中运行)。我不确定您做了哪些更改,但它可能只是触发了流程模型发挥作用的托管场景。
总而言之,如果您想重新启用此功能,您需要切换回进程外。编辑您的 csproj 并更改行:
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
至:
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
推荐阅读
- php - 查询在 phpmyadmin 中执行,但不在 PHP Wordpress 中
- ios - 如何使用 Swift 删除 coredata 中的特定记录?
- python - 将 csv 转换为用于 zipline 的面板 pandas
- php - 如何使用codigniter在mysql中插入多维数组
- typescript - 打字稿合并元组
- mqtt - 如何在 mosquitto MQTT 中处理具有相同 ID 的多个客户端?
- vue.js - Nuxt.js 中的简单嵌套动态路由
- javascript - 使用 webpack 进行构建轮换
- ip - 数据包太大 ICMPv6 消息中有效负载的目的是什么
- javascript - 如何通过选中 3 复选框来启用按钮?