基于配置的条件内容

ten*_*tux 14 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>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有任何想法吗?或者你以前遇到过这个并解决了吗?

Nic*_*nik 23

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

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

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

  • 它似乎会影响构建,这最重要的是,尽管项目在项目中的解决方案资源管理器中保持可见,但它们不包含在构建过​​程中.这是VS2010和MSBUILD之间的脱节我不确定. (3认同)
  • @tentux对于迟到的回应感到抱歉,但你是对的.ItemGroups的条件在构建时由消费目标评估,因此您仍然可以在IDE的解决方案资源管理器中看到所有内容. (2认同)