2013-02-15 35 views
5

Potrzebuję sposobu automatycznego generowania plików * .cs podczas kompilacji, w oparciu o pliki * .xsd, najlepiej bez udziału żadnych niestandardowych dodatków. To musi działać również na budowie CI.Automatyzacja xsd.exe podczas kompilacji

Nie jestem pewien, czy brakuje mi czegoś oczywistego, czy jest to naprawdę trudne, jak mi się wydaje?

+0

Zdarzenie poprzedzające kompilację powinno działać w tym celu. – leppie

Odpowiedz

9

używam tego skryptu:

@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% 

z prebuild przypadku

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

będzie to rekursywnie analizować każdy plik .XSD w folderze w katalogu głównym projektu o nazwie XSDs i przypisze przestrzeń nazw w oparciu o strukturę folderów.

+0

Dziękuję, to działało dla mnie! Czasami najbardziej oczywista odpowiedź jest najtrudniejsza do znalezienia. –

+0

@MarcinSeredynski - Zdecydowanie prawdziwy. Cieszę się, że to pomaga! – Bobson

+1

Aby ustawić własną przestrzeń nazw, możesz zamienić literał łańcuchowy "XSD" na trzeciej linii albo z przestrzenią nazw lub z% 3, aby móc przekazać przestrzeń nazw w trzecim parametrze do tego pliku wsadowego – Woodman

Powiązane problemy