ASP.NET 核心 RC2 区域未发布

ASP.NET Core RC2 Area not published

所以我刚刚更新了我的应用程序以使用 ASP.NET Core RC2。我使用 Visual Studio 发布它并注意到我的区域未发布:

此快照来自src\MyProject\bin\Release\PublishOutput

这是我的区域,在 Visual Studio 中命名为 Admin

我是漏掉了一步还是什么?

您需要配置 project.jsonpublishOptions 部分以包含默认模板中未包含的 Areas 文件夹:

例如:

"publishOptions": {
  "include": [
    "wwwroot",
    "Views",
    "appsettings.json",
    "web.config",
    "Areas"
  ],
  "exclude": [ "bin" ]
}

更新

如果您想确保您的控制器和其他 .cs 文件不被包括在内,您可以使用 publishOptionsexclude 属性 列入黑名单,如下所示:

"publishOptions": {
  "include": [ "wwwroot", "Views", "appsettings.json", "web.config", "Areas" ],
  "exclude": [ "**.user", "**.vspscc", "**.cs", "bin" ]
}

如果您更喜欢限制性更强的安全性,您可以简单地将 .cshtml 文件列入白名单,而不是像这样包括整个 Areas 文件夹:

"publishOptions": {
  "include": [ "wwwroot", "**.cshtml", "appsettings.json", "web.config" ],
  "exclude": [ "bin" ]
}

备注

小心使用像 **.cshtml 这样的通配符,因为它们会包含所有子目录中的所有文件,包括 bin 目录。如果您的 bin 文件夹中有以前构建的任何视图,它们将在新构建输出中再次复制,直到路径变得太长。

添加区域将复制所有内容,包括 .cs 文件。

所以应该在发布选项下添加 "Areas/**/Views/**/*.cshtml""Areas/ * /.cshtml" 而不是只添加 "Areas"