Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use XSD Build task in c# project

How can I use the c++ XSD Task in a c# project? I have already created the task in the csproj file like this:

  <Target Name="BeforeBuild">
    <XSD Namespace="$(RootNamespace).Xml" Language="CS" GenerateFromSchema="classes" Sources="Xml/schema.xsd" />
  </Target>

but the build output says, although intellisense offers me the XSD task while editing the project file:

Error   1   The "XSD" task was not found. Check the following: 
1.) The name of the task in the project file is the same as the name of the task class. 
2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with <UsingTask> in the project file, or in the *.tasks files located in the "C:\Windows\Microsoft.NET\Framework\v4.0.30128" directory. MyProject.csproj

Oh, and I am using Visual Studio 2010 RC.

*

like image 263
m0sa Avatar asked Mar 05 '10 11:03

m0sa


1 Answers

This is because the C++ targets are not imported. Because XSD is not one of the default tasks defined by the managed build process. you need to add a UsingTask to reference it. Add this to your csproj file:

<UsingTask TaskName="XSD" AssemblyName="Microsoft.Build.CppTasks.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

Good Luck, Jamie

like image 159
Jamie Avatar answered Oct 12 '22 20:10

Jamie