È necessario configurare il tratto publishOptions
di project.json
per includere la cartella Areas
che non è incluso nel modello predefinito:
es:
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config",
"Areas"
],
"exclude": [ "bin" ]
}
Aggiornamento
Se si desidera per assicurarti che i tuoi controller e altri file .cs non siano inclusi, puoi inserire nella blacklist la proprietà exclude
di publishOptions
in questo modo:
"publishOptions": {
"include": [ "wwwroot", "Views", "appsettings.json", "web.config", "Areas" ],
"exclude": [ "**.user", "**.vspscc", "**.cs", "bin" ]
}
Se si preferisce la sicurezza più restrittive, si può semplicemente whitelist file .cshtml Invece di includere le intere aree cartella in questo modo:
"publishOptions": {
"include": [ "wwwroot", "**.cshtml", "appsettings.json", "web.config" ],
"exclude": [ "bin" ]
}
Nota
Be attenta all'utilizzo di caratteri jolly come **.cshtml
poiché includeranno tutti i file in tutte le sottodirectory, inclusa la directory bin
. Se si dispone di viste nella cartella bin
da una build precedente, verranno duplicate nuovamente all'interno del nuovo output di build fino a quando il percorso diventa troppo lungo.
fonte
2016-05-19 14:31:07
Questa pubblica infatti la cartella 'Areas' MA pubblica anche la cartella' controllers' all'interno di un'area con 'file .cs'! Questo non è voluto! – VSG24
Aggiornato la mia risposta per includere i dettagli dell'elenco bianco solo i file cshtml, piuttosto che includere l'intera cartella Aree –
Per includere tutte le cartelle Viste che si trovano all'interno della cartella Aree, utilizzare questo - Aree/**/Viste, ma non funziona in RC2 e 1.0 a causa di un bug che è descritto qui - https://github.com/dotnet/cli/issues/3286, come soluzione alternativa utilizzare questo Aree/**/*. cshtml – Sergey