如何在BeforeBuild任务中从csproj文件中删除节点

本文关键字:csproj 文件 删除 节点 BeforeBuild 任务 | 更新日期: 2023-09-27 18:09:35

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

下面是我希望在每次构建期间删除的内容:

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

这是一个良好的开端,但我不知道如何修改我的需要:删除MSBuild DLL参考,无论版本(通过通配符)在VS 2015

如何在BeforeBuild任务中从csproj文件中删除节点

您可以在配置中创建一个属性然后测试条件以包含文件

像这样:

<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>