如何在BeforeBuild Task中从csproj文件中删除节点?

时间:2016-09-29 00:58:53

标签: c# visual-studio msbuild msbuild-task

我的第三方库之一有一个许可文件,每次我们在VS中加载设计器时它总是添加到csproj文件中。如果我只是忽略该文件,我仍然需要从解决方案资源管理器中删除VS,并且在推送到我们的源代码管理之前我往往会忘记它,因为它不需要。如果有一种方法可以删除BeforeBuild目标中的条目或类似的条目(如果找到)?

以下是我希望在构建期间在每个构建中删除的内容:

<ItemGroup>
...
   <EmbeddedResource Include="Properties\licenses.licx" />
...
</ItemGroup>

这是一个好的开始,但我无法弄清楚如何修改我的需求:Remove MSBuild DLL reference regardless of version (by wildcard) in VS 2015

1 个答案:

答案 0 :(得分:1)

您可以创建在配置上设置的属性 并测试条件以包含文件

像这样:

<PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <WithLicense>1</WithLicense>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <WithLicense>0</WithLicense>
</PropertyGroup>
<ItemGroup>
    ...
    <EmbeddedResource Include="Properties\licenses.licx" Condition="$(WithLicense)==1"/>
    ...
</ItemGroup>