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.json
的 publishOptions
部分以包含默认模板中未包含的 Areas
文件夹:
例如:
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config",
"Areas"
],
"exclude": [ "bin" ]
}
更新
如果您想确保您的控制器和其他 .cs 文件不被包括在内,您可以使用 publishOptions
的 exclude
属性 列入黑名单,如下所示:
"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"
所以我刚刚更新了我的应用程序以使用 ASP.NET Core RC2。我使用 Visual Studio 发布它并注意到我的区域未发布:
此快照来自src\MyProject\bin\Release\PublishOutput
:
这是我的区域,在 Visual Studio 中命名为 Admin
:
我是漏掉了一步还是什么?
您需要配置 project.json
的 publishOptions
部分以包含默认模板中未包含的 Areas
文件夹:
例如:
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config",
"Areas"
],
"exclude": [ "bin" ]
}
更新
如果您想确保您的控制器和其他 .cs 文件不被包括在内,您可以使用 publishOptions
的 exclude
属性 列入黑名单,如下所示:
"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"