在构建期间自动执行xsd.exe

时间:2013-02-15 15:18:36

标签: c# .net visual-studio msbuild xsd

我需要一种基于* .xsd文件在构建期间自动重新生成* .cs文件的方法,最好不涉及任何自定义加载项。这也需要在CI构建上运行。

我不确定我是否遗漏了一些明显的东西,或者这在我看来真的很棘手?

1 个答案:

答案 0 :(得分:9)

我使用这个脚本:

@echo off
cd %1
call :treeProcess %2 "XSDs"
cd ..
goto :eof

:treeProcess
rem From http://stackoverflow.com/a/8398621/298754
echo Processing %2
for %%f in (*.xsd) do call :buildXSD %%f %1 %2 %%~nf
for /D %%d in (*) do (
    cd %%d
    call :treeProcess %1 %2.%%d
    cd ..
)
exit /b

:buildXSD
%2 %1 /c /n:%3.%4%

预建事件

call "$(ProjectDir)"XSDBuilder.bat "$(ProjectDir)"\XSDs "$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\@InstallationFolder)bin\xsd.exe"

这将以递归方式解析项目根目录中名为XSDs的文件夹中的每个.xsd文件,并根据文件夹结构分配命名空间。

相关问题