【问题标题】:Manually recompile required if using custom launch-profile如果使用自定义启动配置文件,则需要手动重新编译
【发布时间】:2019-08-06 14:52:28
【问题描述】:

如果我使用 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-2.2 中描述的自定义启动设置配置文件,我必须手动构建应用程序以获取更改 - 也适用于 razor-html 中的简单更改。

我创建了一个新的 Asp.net 核心网页应用程序,我使用 Ctrl+F5 启动它。现在我可以了

  1. 对 razor 文件的 HTML 进行一些更改
  2. 保存 *.cshtml 文件不重新构建
  3. 切换到浏览器
  4. 用 F5 刷新(如果我不使用 BrowserLink)
  5. 我看到了我的变化 - 一切正常

现在我在 Properties\launchSettings.json 中创建自定义启动配置文件:

"HomeOffice": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "HomeOffice"
      }
    }

我还为我的自定义连接字符串创建了一个 appsettings.HomeOffice.json

我在 VisualStudio 的下拉框中选择我的新配置文件,使用 Ctrl-F5 重新启动应用程序。该应用程序正在使用自定义配置运行。

但如果我现在对 html 进行一些更改,我必须重新构建项目。。这对我来说很糟糕!

有什么想法吗?

【问题讨论】:

    标签: asp.net-core


    【解决方案1】:

    自动重建仅在使用 Kestrel(使用或不使用 IIS/IIS Express 作为反向代理)运行时才有效。在 ASP.NET Core 2.2 中,默认托管进程模型从进程外(即 IIS 反向代理后的 Kestrel)更改为进程内(即直接在 IIS 的应用程序池中运行)。我不确定您做了哪些更改,但它可能只是触发了流程模型发挥作用的托管场景。

    总之,如果您想重新启用此功能,则需要切换回进程外。编辑您的 csproj 并更改行:

    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
    

    收件人:

    <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
    

    【讨论】:

    • 感谢您的回答,但如果创建一个新的全新 Asp.Net Core-Application,自动重建正在运行,同时使用 InProcess-hosting(目前是默认的 hostingModel)。所以切换回 OutOfProcess 并不能解决我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多