如何告诉sharpdevelop运行xsd工具从.xsd生成.cs

时间:2014-05-15 13:31:50

标签: c# .net xml xsd sharpdevelop

我正在尝试使用sharpdevelop从我的.xsd生成一个.cs文件。我已经尝试在解决方案的“预构建事件命令行”中添加一个条目,但它没有效果,甚至没有输出。所以我尝试添加一个简单的

echo "Hello World!!!"

到预构建只是为了确保它正常工作。这也没有任何效果,这表明没有调用预构建事件。

我还尝试在其属性中为我的.xsd文件指定一个“自定义工具”。无论我在自定义工具属性中添加了什么,都会导致“无法找到自定义工具”错误。

1 个答案:

答案 0 :(得分:1)

以下是我使用xsd.exe在SharpDevelop 4.4中使用预构建事件生成C#文件的方法。

确保xsd.exe在您的路径上。如果已配置,则应该能够从命令行运行xsd.exe,而无需指定其完整路径。

在SharpDevelop中打开项目后,从项目菜单中选择项目选项。然后选择构建事件标签。

预构建事件命令行文本框中添加以下内容:

xsd $(ProjectDir)myschema.xsd /c /out:$(ProjectDir)

这假设您在项目目录中有一个名为myschema.xsd的XML模式。

现在建立项目。

构建项目将在编译项目的其余部分之前运行xsd,并在项目目录中生成C#文件。生成此文件后,您可以将C#文件添加到项目中,并编写使用此文件中的类的代码。因此,您可以修改架构,并使用更改生成新的C#文件。

要在预构建事件中查看echo语句,您需要增加MSBuild日志记录级别。默认情况下,SharpDevelop显示MSBuild的最小输出。

要查看echo语句,请从“工具”菜单中选择“选项”。在常规类别中,选择项目和解决方案。然后在下拉列表中将Build verbosity更改为 Diagnostic 。然后当你用SharpDevelop构建时,你会看到很多MSBuild输出,但是如果你搜索你的文本,你会在输出中找到它:

Target "PreBuildEvent" in file     "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets":
  Using "Exec" task from assembly "Microsoft.Build.Tasks.v4.0, Version=4.0.0.0,     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
  Task "Exec"
    echo 'Hello world'
    'Hello world'
  Done executing task "Exec".