基于配置的条件内容

时间:2011-11-13 23:37:30

标签: msbuild csproj

我已经多次尝试使用类似的技术作为条件内容的“条件引用”。

当我发布网站时,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>

但这不起作用。有任何想法吗?或者您之前遇到过这个问题并解决了吗?

2 个答案:

答案 0 :(得分:21)

我相信您可以将条件添加到ItemGroup ...示例:

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

注意条件中'$(配置)'周围的刻度。那些是非常必要的。

答案 1 :(得分:2)

我想将尼克·尼斯兰尼克提供的答案扩展到一些细节,以便其他人不会像我一样难倒。

解决方案在构建/发布期间有效,但Visual Studio 2010的界面可能无法反映所做的更改。这是否是一个缺陷,我不确定,但它确实让我感到困惑,可能会让其他人感到困惑。