asp.net-core - Publishoptions 递归创建 cshtml 文件

标签 asp.net-core coreclr

我有 ASP.NET Core 应用程序。在 project.json我有如下配置的发布选项

"publishOptions": {
    "include": [
      "wwwroot",
      "**/*.cshtml",
      "appsettings.json",
      "appsettings.development.json",
      "appsettings.staging.json",
      "appsettings.production.json",
      "web.config"
    ]
  },

我正在使用 vs 2015 为 asp.net 核心 Web 项目创建的默认项目模板。所以所有的.cshtml文件在 Views 下文件夹。

当我执行 dotnet publish -c Development命令 dotnet 在下面发布 View

C:\MySolutionDir\Src\MyUIProjectDir\bin\Development\netcoreapp1.0\publish\Views



然后我再次执行相同的命令。这次bin\Development\netcoreapp1.0\publish\Views下已经存在cshtml文件了所以这次发布命令额外创建了以下文件夹结构

C:\MySolutionDir\Src\MyUIProjectDir\bin\Development\netcoreapp1.0\publish\bin\Development\netcoreapp1.0\publish\Views



如果我再次执行命令,那么它会创建

C:\MySolutionDir\Src\MyUIProjectDir\bin\Development\netcoreapp1.0\publish\bin\Development\netcoreapp1.0\publish\bin\Development\netcoreapp1.0\publish\Views



它基本上递归地在“MyUIProjectDir”下找到 .cshtml 文件,并不断创建 Views 文件夹的深层层次结构。

我也有其他环境,有像这样的文件夹
 C:\MySolutionDir\Src\MyUIProjectDir\bin\Staging
 C:\MySolutionDir\Src\MyUIProjectDir\bin\Production

发布命令还将 cshtml 从“暂存”和“生产”复制到开发中。

如何解决此问题,以便发布命令仅从“MyUIProjectDir\Views”文件夹(而不是从 bin)复制 cshtml

最佳答案

**/*模式还将在 wwwroot 中查找文件文件夹。您有 2 个选择:

  • 修改 **/ *.cshtml要搜索的模式 .cshtml仅在特定文件夹中,或直接在您的 .cshtml 中包含文件夹文件(Views 我猜):
    "publishOptions": {
       "include": [
          "wwwroot",
          "Views",
          ...
       ]
    }
    
  • 排除出版 .cshtml文件,位于 wwwroot文件夹。使用 exclude publishOptions 中的部分:
    "publishOptions": {
      "exclude": [
          "wwwroot/*.cshtml"
      ]
    
  • 关于asp.net-core - Publishoptions 递归创建 cshtml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40117094/

    相关文章:

    c# - 我不想直接输入应用程序洞察的 key 来注册日志

    asp.net-mvc - @Html.ActionLink、@Url.Action 在 asp.net core razor View 中不起作用

    .net - 在 IIS 中托管时如何在任务管理器中显示应用程序名称

    asp.net-core - 如何在 VS 2017 中更新 Microsoft.NETCore.App SDK 版本

    c# - asp.net Core 1.1 分块响应

    razor - 在 Razor 局部 View 中保留数据

    reverse-engineering - Entity Framework 7 逆向工程不起作用

    c# - coreclr 中的 Thread.Yield()

    asp.net - 无法在 Ubuntu 上使用 `dnx run` 启动 ASP 应用程序

    asp.net-core - 在 Windows 上为不同平台构建 coreclr 应用程序