Musisz skonfigurować swój punkt publishOptions
z project.json
zawierać folder Areas
który nie jest zawarty w domyślnym szablonie:
ex:
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config",
"Areas"
],
"exclude": [ "bin" ]
}
Aktualizacja
Jeśli chcesz aby upewnić się, że kontrolery i inne pliki .cs nie zostały uwzględnione, możesz umieścić na czarnej liście właściwość exclude
z publishOptions
tak:
"publishOptions": {
"include": [ "wwwroot", "Views", "appsettings.json", "web.config", "Areas" ],
"exclude": [ "**.user", "**.vspscc", "**.cs", "bin" ]
}
Jeśli wolisz bardziej restrykcyjne zabezpieczenia, można po prostu białej listy .cshtml plików zamiast w tym całych obszarów folderu tak:
"publishOptions": {
"include": [ "wwwroot", "**.cshtml", "appsettings.json", "web.config" ],
"exclude": [ "bin" ]
}
Uwaga
Be ostrożnie używaj symboli wieloznacznych, takich jak **.cshtml
, ponieważ zawierają one wszystkie pliki we wszystkich podkatalogach, w tym katalog bin
. Jeśli masz jakieś widoki w folderze bin
z poprzedniej wersji, zostaną one ponownie skopiowane wewnątrz nowego wyjścia kompilacji, dopóki ścieżka nie stanie się zbyt długa.
To rzeczywiście wydaje folder 'Areas' ale również publikuje folder' Controllers' wewnątrz obszaru z 'plików .cs'! To nie jest potrzebne! – VSG24
Zaktualizowałem moją odpowiedź, aby zawrzeć szczegóły tylko cshtml zawierających białe pliki, a nie włączając w to cały folder Obszarów –
. Aby uwzględnić wszystkie foldery Widwork, które znajdują się w folderze Obszary, użyj tego - Obszary/**/Widoki, ale nie ma działa w RC2 i 1.0 z powodu błędu opisanego tutaj - https://github.com/dotnet/cli/issues/3286, jako obejście tego obszaru/**/*. cshtml – Sergey