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"
。
Areas
文件夹,但它也发布了带有.cs
文件的区域内的Controllers
文件夹!这是不想要的! - Vahid Amiri