2016-05-19 33 views
15

Quindi ho appena aggiornato la mia app per utilizzare ASP.NET Core RC2. Ho pubblicato utilizzando Visual Studio e ho notato che la mia zona non è pubblicato:Area ASP.NET Core RC2 non pubblicata

Questa istantanea è da src\MyProject\bin\Release\PublishOutput:

enter image description here

Ed ecco la mia zona, denominata Admin in Visual Studio:

enter image description here

Mi manca un passaggio o cosa?

risposta

21

È 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.

+0

Questa pubblica infatti la cartella 'Areas' MA pubblica anche la cartella' controllers' all'interno di un'area con 'file .cs'! Questo non è voluto! – VSG24

+0

Aggiornato la mia risposta per includere i dettagli dell'elenco bianco solo i file cshtml, piuttosto che includere l'intera cartella Aree –

+2

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

0

L'aggiunta di aree copierà tutto, inclusi i file .cs.

così dovrebbe aggiungere "Areas/**/Views/**/*.cshtml" e "Areas/ * /.cshtml" sotto Opzioni di pubblicazione, invece di solo "Areas"

Problemi correlati