如何使用MSBuild更改文件的构建操作

时间:2011-03-30 09:14:15

标签: msbuild

我们在项目中使用NHibernate,并且需要所有.hbm.xml文件作为嵌入资源。 为了自动化这个无聊的任务,我们将这个目标定义添加到我们的项目文件中:

<Target Name="BeforeBuild">    
  <ItemGroup>
    <EmbeddedResource Include="**\*.hbm.xml" />
  </ItemGroup>
</Target>

仅当所有hbm.xml文件都具有构建操作时才有效。但是在我们的项目中,一些文件被手动设置为Embedded Resource,现在没有机会改变所有文件。

因此我们得到构建错误“该项目在”Resources“参数中被多次指定,并且两个项目的”LogicalName“元数据具有相同的值。”Resources“参数不支持重复项,除非它们具有“LogicalName”元数据的不同值。“

是否可以编写一个仅针对.hbm.xml文件更改构建操作的目标,其中构建操作为无(或非嵌入式资源)?

1 个答案:

答案 0 :(得分:3)

首先删除那些已经设置为嵌入式资源的内容,然后将它们全部添加到?

中是否可行?
<ItemGroup>
  <EmbeddedResource Remove="**\*.hbm.xml" />
  <EmbeddedResource Include="**\*.hbm.xml" />
</ItemGroup>