2011-11-13 17 views
11

Próbowałem już kilka razy, aby zastosować podobną technikę jako "odniesienia warunkowe" dla treści warunkowych.Treści warunkowe oparte na konfiguracji

Wpisy do treści w pliku projektu Visual Studio, takie jak "web.config" Robię nie, które są uwzględniane podczas publikowania witryny.

Próbowałem kilka rzeczy jak ...

<Choose> 

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

</Choose> 

Ale to nie działa. Jakieś pomysły? A może napotkałeś to wcześniej i rozwiązałeś?

Odpowiedz

19

Wierzę, że można po prostu dodać warunek do ItemGroup ... Przykład:

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

Uwaga kleszcze wokół '$ (Configuration)' w stanie. Są bardzo potrzebne.

+0

Po prostu próbowałem tego i nie mogę go uruchomić. Próbowałem również Condition = "$ (Configuration)" == 'Debugowanie', ale nadal nie ma radości. Kiedy przełączam konfiguracje, pliki po prostu pozostają w projekcie. Próbowałem także przełączać konfiguracje, a następnie rozładowywać i ponownie ładować projekt, ale mimo to pliki te są uwzględniane pomimo wybranej przeze mnie konfiguracji. – tentux

+0

Po prostu próbowałem stworzyć nową aplikację konsoli, więc upewnij się, że bardziej skomplikowanym rozwiązaniem nie jest rzucanie klucza w prace. Ale nadal nie działa: Bez względu na to, którą konfigurację wybiorę, pliki te są obecne w projekcie. – tentux

+0

Właśnie wydałem jednak, że gdy BUILDING w wydaniu dostaję błąd kompilacji, ponieważ nie ma statycznego main. Podejrzewam, że spodziewam się, że program Solution Explorer będzie odzwierciedlał to, co ma być wbudowane/zbudowane. Chociaż te pliki są widoczne w projekcie, wygląda na to, że buduje je ponad nimi. Wypróbuję moją teorię później i potwierdzę w osobnym poście. – tentux

2

Chciałbym przedłużyć odpowiedź udzieloną przez Nicka Nieslanika na pewne szczegóły, aby inni nie byli tak samo zaskoczeni jak ja.

Rozwiązanie działa podczas kompilacji/publikowania, ale interfejs Visual Studio 2010 może nie odzwierciedlać wprowadzonych zmian. Niezależnie od tego, czy jest to wada, czy nie, nie jestem pewien, ale wprowadził mnie w zakłopotanie i może wprowadzić w błąd innych.

+0

Stwierdzenie tego jako komentarza byłoby bardziej skuteczne niż jako odpowiedź. – jpierson

+0

Widziałem to samo zjawisko. VS2010 nie odzwierciedla tego, co faktycznie zostało zrobione. –

Powiązane problemy