tags:

views:

55

answers:

2

I Am trying to add a Post Build MSBuild event to my csproj to do this i am trying to call an MSBuild task from inside the Afterbuild target in the.csproj file

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

This is then the post.build file.

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

It seems that the csproj cannot call the MSbuild task, can anyone suggest what might be going wrong here. I get the error

error MSB4057: The target "Copy" does not exist in the project.

A: 

Are you sure you haven't made the typo in your actual post.build file as well? That is, it should be not . XML is case-sensitive.

Also, I would double-check that the post.build file is placed in the same folder as the .csproj file.

Umar Farooq Khawaja
A: 

So What I eventually got working was.

I did as Martin Suggested and

<Import Project="post.build"/>

However the MSBuild Task still did not function as planned. So I ended up using the

<CallTarget Targets="copy"/>

To Call across the files. This sounds like it is a limitation in VS2008 and is fixed in VS2010.

Bluephlame