2010-07-23 6 views
7

Sto servendo le mie viste mvc asp.net da molti assiemi e copiando le viste all'applicazione principale su evento post-build.Visual Studio: come sovrascrivere l'impostazione predefinita "Crea azione" per determinati tipi di estensione per progetto o soluzione?

Questo funziona, tuttavia, mi sono reso conto che quando cambio qualcosa in vista e prendo appena F5, le modifiche non sono incluse. Quello che devo fare per vedere le modifiche è: salvare, compilare < - fare clic in modo esplicito e quindi premere F5. Tuttavia, è una soluzione piuttosto fastidiosa.

Ho scoperto che l'impostazione Crea azione su "Risorsa incorporata" in vista risolve il problema, tuttavia altri sviluppatori potrebbero non ricordare di doverlo fare dopo aver aggiunto ogni vista alla soluzione.

C'è un modo per sovrascrivere l'azione di compilazione predefinita per determinate estensioni di file, come ad esempio: * .aspx, * .ascx in progetto o (meglio) in soluzione?

Quello che ho trovato è la possibilità di aggiungere questa impostazione a livello globale, per macchina, ma non voglio farlo (link: http://blog.andreloker.de/post/2010/07/02/Visual-Studio-default-build-action-for-non-default-file-types.aspx)

Tutte le idee?

+7

Indicate un articolo che ho menzionato nel mio post. Hai letto il mio post o semplicemente scansionato il titolo? –

risposta

6

Si consideri il seguente schema file di progetto:

<Project ToolsVersion="3.5" DefaultTargets="EmbedViews;Build" ...> 
... 
    <Target Name="EmbedViews"> 
    <ItemGroup> 
     <EmbeddedResource Include="Views\*\*.aspx" /> 
     <EmbeddedResource Include="Views\*\*.ascx" /> 
    </ItemGroup> 
    </Target> 
</Project> 

Questo aggiungerà tutti aspx e ascx file in Views\<subfolder> alla libreria come Embedded Resource. Si noti che EmbedViews si aggiunge alla DefaultTargetsprimaBuild - l'ordine è importante qui, ho scoperto facendo questo errore io :-)

Poiché la modifica di tutti i file del progetto per ottenere questo frammento in è ingombrante, si potrebbe rendere il proprio modello di progetto con questo incluso.

Per favore fatemi sapere se questo ha aiutato.

+1

Ho provato a farlo ma non sono riuscito a farlo funzionare – Colin

+2

Piccolo emendamento se si desidera includere un numero qualsiasi di discendenti nella struttura di cartelle: "Visualizzazioni \\ ** \\ *. Aspx" –

0

Nel caso qualcuno si chiede qui - non c'è ancora modo per farlo se si vuole farlo funzionare su corrente e futuri articoli.

In VS 2017 durante l'aggiunta di nuovi file quando il catch-all regola è presente (ad es Content Include = "**.*ts") se si aggiunge un nuovo file, si aggiungerà il proprio linea per <ItemGroup> con il proprio BuildAction, ignorando il tuo predefinito catch-all .