Область ASP.NET Core RC2 не опубликована

Поэтому я только что обновил свое приложение, чтобы использовать ASP.NET Core RC2. Я опубликовал его с помощью Visual Studio и заметил, что моя область не опубликована:

Этот снимок сделан src\MyProject\bin\Release\PublishOutput:

введите описание изображения здесь

А вот моя область с именем Admin в Visual Studio:

введите описание изображения здесь

Я пропустил шаг или что?


person Vahid Amiri    schedule 19.05.2016    source источник


Ответы (2)


Вам нужно настроить раздел publishOptions в project.json, чтобы включить папку Areas, которая не включена в шаблон по умолчанию:

ex:

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

Обновить

Если вы хотите убедиться, что ваши контроллеры и другие файлы .cs не включены, вы можете добавить в черный список свойство exclude publishOptions следующим образом:

"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 из предыдущей сборки, они будут снова дублироваться в выходных данных новой сборки, пока путь не станет слишком длинным.

person Daniel Grim    schedule 19.05.2016
comment
Это действительно публикует папку Areas, НО также публикует папку Controllers внутри области с .cs файлами! Это не нужно! - person Vahid Amiri; 19.05.2016
comment
Обновлен мой ответ, чтобы включить в белый список только файлы cshtml, а не всю папку Areas. - person Daniel Grim; 19.05.2016
comment
Чтобы включить все папки Views, которые находятся внутри папки Areas, используйте это — Areas/**/Views, но это не работает в RC2 и 1.0 из-за описанной здесь ошибки — github.com/dotnet/cli/issues/3286, в качестве обходного пути используйте этот Areas/**/*.cshtml - person Sergey; 29.06.2016

При добавлении областей будет скопировано все, включая файлы .cs.

поэтому следует добавить "Areas/**/Views/**/*.cshtml" и "Areas/ * /.cshtml" в параметры публикации вместо только "Areas"

person Nouman Bhatti    schedule 21.03.2017