ASP.NET Core RC2区域未发布

15

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

这个快照来自 src\MyProject\bin\Release\PublishOutput

输入图片描述

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

输入图片描述

我是不是漏掉了一步或者怎么了?

2个回答

21
你需要配置project.json文件中的publishOptions部分,以包括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 文件夹中有任何以前构建的视图,则它们将再次在新的构建输出内重复,直到路径变得太长。


这确实发布了Areas文件夹,但它也发布了带有.cs文件的区域内的Controllers文件夹!这是不想要的! - Vahid Amiri
更新了我的答案,包括只将cshtml文件列入白名单,而不是包含整个Areas文件夹。 - Daniel Grim
2
为了包含位于Areas文件夹内的所有Views文件夹,请使用以下内容 - Areas//Views,但在RC2和1.0中由于错误无法正常工作,该错误在此处描述 - https://github.com/dotnet/cli/issues/3286,可以使用以下解决方法 - Areas//*.cshtml - Sergey

0

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

因此,应该在发布选项下添加 "Areas/**/Views/**/*.cshtml""Areas/ * /.cshtml" 而不是仅添加 "Areas"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接