Условный контент на основе конфигурации

Я несколько раз пытался использовать подобную технику, как "условные ссылки" для условного контента.

Записи контента в файле проекта Visual Studio, такие как "web.config", я не хочу включить, когда я публикую веб-сайт.

Я пробовал несколько вещей вроде...

<Choose>

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

</Choose>

Но это не работает. Есть идеи? Или вы столкнулись с этим раньше и решили?

Ответ 1

Я считаю, что вы можете просто добавить условие в ItemGroup... Пример:

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

Обратите внимание на отметки вокруг '$ (Конфигурация)' в условии. Это очень необходимо.

Ответ 2

Я хотел бы продлить ответ, предоставленный Ником Нислаником, с некоторыми деталями, чтобы другие не были тупыми, как и я.

Решение работает во время сборки/публикации, но интерфейс Visual Studio 2010 может не отражать внесенные изменения. Является ли это дефектом или нет, я не уверен, но это меня смутило, и это может смутить других.