来自.csproj文件的MSBuild任务

时间:2010-08-03 07:03:17

标签: c# msbuild

我正在尝试向我的csproj添加Post Build MSBuild事件来执行此操作我尝试从.csproj文件中的Afterbuild目标内部调用MSBuild任务

  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
       Other similar extension points exist, see Microsoft.Common.targets.-->
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
    <Message Text="Copying Files" />
    <MSBuild Projects="post.build" 
        Targets="Copy"
        ContinueOnError="false" />
  </Target>

这是post.build文件。

 <Project DefaultTargets="Copy"
 xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Target Name="Copy">
     <Message Text="Copying Files inside COPY" />
     <CallTarget Targets="CopyToProfile"/>   </Target>
 </project>

似乎csproj无法调用MSbuild任务,任何人都可以建议这里可能出现的问题。我收到了错误

  

错误MSB4057:目标“复制”   在项目中不存在。

2 个答案:

答案 0 :(得分:2)

所以我最终得到的是。

我做过Martin Suggested和

<Import Project="post.build"/>

但是,MSBuild任务仍未按计划运行。所以我最终使用了

<CallTarget Targets="copy"/>

调用文件。这听起来像VS2008中的限制,并在VS2010中修复。

答案 1 :(得分:0)

你确定你还没有在你的实际post.build文件中输入错字吗?也就是说,它应该不是。 XML区分大小写。

另外,我会仔细检查post.build文件是否与.csproj文件放在同一个文件夹中。