2011-11-13 26 views
11

Ho provato più volte a utilizzare una tecnica simile a "riferimenti condizionali" per il contenuto condizionale.Contenuto condizionato in base alla configurazione

Voci di contenuto nel file di progetto Visual Studio come "web.config" faccio non voglio includere quando pubblico il sito web.

Ho provato un paio di cose come ...

<Choose> 

    <When Condition="$(Configuration) != 'Release'"> 
     <ItemGroup> 
      <Content Include="web.config"> 
       <SubType>Designer</SubType> 
       <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
       </Content> 
     </ItemGroup> 
    </When> 
    <Otherwise> 
     <ItemGroup> 
     </ItemGroup> 
    </Otherwise> 

</Choose> 

Ma questo non funziona. Qualche idea? O l'hai già incontrato prima e risolto?

risposta

19

io credo che si può semplicemente aggiungere la condizione al ItemGroup ... Esempio:

<ItemGroup Condition="'$(Configuration)' != 'Release'"> 
     <Content Include="web.config"> 
      <SubType>Designer</SubType> 
      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
      </Content> 
    </ItemGroup> 

Nota zecche intorno '$ (configurazione)' nella condizione. Questi sono molto necessari.

+0

Ho appena provato questo e non riesco a farlo funzionare. Ho anche provato Condition = "'$ (Configuration)' == 'Debug'", ma ancora nessuna gioia. Quando cambio le configurazioni, i file rimangono semplicemente inseriti nel progetto. Ho anche provato a cambiare le configurazioni e quindi a scaricare e ricaricare il progetto, ma comunque quei file sono inclusi nonostante la configurazione che scelgo. – tentux

+0

Ho anche appena provato a creare una nuova applicazione console per assicurarmi che la soluzione più complessa non stia lanciando uno spanner in lavorazione. Ma ancora non funziona: Indipendentemente dalla configurazione scelta, questi file sono presenti nel progetto. – tentux

+0

Ho appena rilasciato che quando BUILDING in rilascio ottengo un errore di compilazione perché la statica main non è presente. Il mio sospetto è che mi aspetto che Solution Explorer rifletta ciò che verrà incluso/costruito. Sebbene questi file siano visibili nel progetto, sembra come se la build li superasse. Proverò la mia teoria più tardi e confermerò in un post separato. – tentux

2

Mi piacerebbe estendere la risposta fornita da Nick Nieslanik con alcuni dettagli solo così gli altri non sono perplessi nello stesso modo in cui ero io.

La soluzione funziona durante la generazione/pubblicazione, ma l'interfaccia di Visual Studio 2010 potrebbe non riflettere le modifiche apportate. Se questo è un difetto o no, non ne sono sicuro, ma mi ha confuso e potrebbe confondere gli altri.

+0

Affermare questo come commento sarebbe più efficace che come risposta. – jpierson

+0

Ho visto lo stesso fenomeno. VS2010 non riflette ciò che è effettivamente fatto. –

Problemi correlati