加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Spring.build 102.20 KB
一键复制 编辑 原始数据 按行查看 历史
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034
<?xml version="1.0" ?>
<project name="Spring.NET" default="test">
<!--
Main build targets:
===================
"test":
builds debug builds for all projects for all available target platforms
"compile-build-<framework id>":
builds all projects for a specific platform, e.g. compile-build-3.5 for net-3.5
"doc":
builds the reference and sdk documentation
"package":
builds all projects for all target platforms, builds docs and packages everything for distribution
Build properties that may be set:
=================================
"project.build.sign":
values: bool: true|false
signs all assemblies. Requires the key file $/Spring.Net.snk to be in place
"mstest.exe":
value: string, fully-qualified location of mstest.exe, for example, C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe
"vs-net.mstest.bin.dir":
value: string: location of mstest.exe, for example C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
"package.version":
values: string: a 3-part number xx.xx.xx
set the package version
"test.integration.data":
values: bool: true|false
set this to true to run integration tests that access a database
"test.integration.ems":
values: bool: true|false
set this to true to run integration tests that access TIBCO EMS
"test.integration.nms":
values: bool: true|false
set this to true to run integration tests that access ActiveMQ
"test.full":
values: bool: true|false
set this to true to run all available tests (example solutions, integration tests, etc.)
"doc.sdk":
values: bool: true|false
set this to true to use NDoc to generate API documentation. Note Spring ships with documentation generated using Document X!
Additional Remarks:
===================
*) Building Spring.Messaging.Ems
if you want to build Spring.Messaging.Ems (Tibco EMS support), you need to copy tibco.ems.dll and tibco.ems.admin.dll into '/lib/net/2.0'
*) Building Spring.Testing.Microsoft
if you want to build Spring.Testing.Microsoft (MSTest Support), you need to have VS MSTest support installed (mstest.exe)
Running Integration Tests:
==========================
*) Database Integration Tests
- you need to have an MSSQL 2005 Server instance installed and configured an alias "SPRINGQA" for this instance
- create a login "springqa" with password "springqa" and assign the 'db_sysadmin' role
on the commandline enable the "test.integration.data" flag, e.g.:
nant test -f:spring.build -D:test.integration.data=true
*) TIBCO EMS Integration Tests
- You need to have an EMS instance running at the URL tcp://localhost:7222
on the commandline enable the "test.integration.ems" flag, e.g.:
nant test -f:spring.build -D:test.integration.ems=true
*) ActiveMQ Inegration Tests
on the commandline enable the "test.integration.nms" flag, e.g.:
nant test -f:spring.build -D:test.integration.nms=true
Commandline Examples:
=====================
*) to build the distribution package, copy the key file into $/Spring.Net.snk and execute
nant clean package -f:spring.build -D:project.build.sign=true -D:package.version=1.3.0
*) to build a specific target platform
nant compile-build-3.5
*) to build just debug builds for all available platforms and execute tests
nant test
-->
<!--
global DIAGNOSTICS setting, applied to EVERY instance of <copy> task via verbose="${copy-verbose}" attribute
so as to be toggled in ONE place and affect ALL copy operations; leave FALSE except for debugging/troubleshooting the build
-->
<property name="copy-verbose" value="true" />
<!-- global project settings -->
<property name="project.name" value="Spring.NET"/>
<property name="project.name.full" value="Spring.NET Framework"/>
<property name="spring.basedir" value="${project::get-base-directory()}"/>
<property name="nuget.packages.dir" value="${environment::get-variable('HOMEPATH') + '\.nuget\packages'}"/>
<property name="spring.nonredistdir" value="${spring.basedir}\..\..\nonredist"/>
<property name="tool.dir" value="${project::get-base-directory()}\build-support\tools"/>
<property name="nuget.exe" value="${tool.dir}\NuGet\NuGet.exe"/>
<!--Support for Windows XP in other languages. In Portuguese, for example, is "c:\Arquivos de Programs"-->
<property name="programfiles" value="C:\Program Files"/>
<property name="programfilesx86" value="C:\Program Files (x86)"/>
<property name="programfiles" value="${environment::get-variable('ProgramFiles')}" failonerror="false"/>
<property name="programfilesx86" value="${environment::get-variable('ProgramFiles(x86)')}" failonerror="false"/>
<!-- build SDK docs with NDoc -->
<property name="doc.sdk" value="false"/>
<!-- turn on all tests if test.full specified -->
<property name="test.full" value="false" overwrite="false" />
<property name="test.integration.data" value="${test.full}" overwrite="false" />
<property name="test.integration.ems" value="${test.full}" overwrite="false" />
<property name="test.integration.nms" value="${test.full}" overwrite="false" />
<!--
the line below is for the ccnet build box - see target set-user-overrides for how to change this to your machine values if necessary
- or better check the registry key as shown above
-->
<!-- property name="vs-net.mstest.bin.dir" value="K:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE" if="${not property::exists('vs-net.mstest.bin.dir')}" / -->
<!-- debug or release -->
<property name="project.build.config" value="debug"/>
<property name="project.build.package" value="false"/>
<property name="project.build.sign" value="false" overwrite="false" />
<property name="test.withcoverage" value="true" overwrite="false" />
<!-- what coverage tool to use: ncover or opencover -->
<property name="test.coverage.tool" value="opencover" overwrite="false" />
<!-- import non-redistributables if available -->
<!-- to build certain libraries (e.g. Spring.Messaging.Ems), 3rd party libraries are required
that we are not allowed to redistribute -->
<if test="${directory::exists(spring.nonredistdir)}">
<echo message="Copying non-redistributables into source tree"/>
<copy todir="${spring.basedir}" verbose="${copy-verbose}">
<fileset basedir="${spring.nonredistdir}">
<include name="**/*.*"/>
</fileset>
</copy>
</if>
<!-- Include spring helpers -->
<include buildfile="${spring.basedir}/Spring.include"/>
<property name="package.version" value="0.0.0" overwrite="false"/>
<!-- change this to sync the sdk doc version generated -->
<property name="package.version.docs" value="${package.version}" />
<!-- make system environment variables available as NAnt properties -->
<property name="package.buildincrement" value="000" overwrite="false"/>
<call target="check-package.passedbuildincrement" />
<sysinfo failonerror="false" />
<property name="project.company" value="SpringSource"/>
<property name="project.copyright" value="Copyright 2002-2012 Spring.NET Framework Team."/>
<property name="key.file" value="Spring.Net.snk"/>
<property name="project.year" value="2010"/>
<!-- Targets that are always executed -->
<call target="set-build-configuration"/>
<!-- What packages to build -->
<property name="build.allnamespaces" value="false"/>
<if test="${not build.allnamespaces}">
<call target="set-build-namespaces-release"/>
</if>
<if test="${build.allnamespaces}">
<call target="set-build-namespaces-all"/>
</if>
<!-- no matter what, we can only use the last 3 digits of the passed-in build-increment value so ensure this is the case -->
<target name="check-package.passedbuildincrement">
<if test="${property::exists('package.passedbuildincrement') and string::get-length(package.passedbuildincrement) > 3}">
<property name="package.buildincrement" value="${string::substring(package.passedbuildincrement, string::get-length(package.passedbuildincrement) -3, 3)}" overwrite="true" />
</if>
</target>
<!-- call target="set-framework-configuration"/ -->
<call target="set-user-overrides"/>
<!-- Targets that check settings -->
<target name="check-package-version">
<fail message="A package version has not been specified." if="${not property::exists('package.version')}"/>
</target>
<target name="check-package-dir">
<property name="package.dir" value="build\package" overwrite="false"/>
<mkdir dir="${package.dir}"/>
</target>
<target name="check-current-package-dir">
<fail message="The current package directory has not been specified."
if="${not property::exists('current.package.dir')}"/>
<mkdir dir="${current.package.dir}"/>
</target>
<target name="check-htmlhelp-compiler">
<if test="${not property::exists('htmlhelp.compiler')}">
<readregistry property="htmlhelp.workshop.installroot"
key="SOFTWARE\Microsoft\HTML Help Workshop\InstallDir" hive="CurrentUser"
failonerror="false"/>
<if test="${property::exists('htmlhelp.workshop.installroot')}">
<property name="htmlhelp.compiler" value="${htmlhelp.workshop.installroot}/hhc.exe"/>
</if>
</if>
<if test="${not property::exists('htmlhelp.compiler')}">
<sysinfo/>
<property name="htmlhelp.compiler" value="${sys.os.folder.programfiles}/HTML Help Worshop/hhc.exe"/>
</if>
</target>
<!-- Target for cleaning up the current package directory -->
<target name="clean-current-package-dir" depends="check-current-package-dir"
description="Cleans the current package directory">
<echo message="Cleaning the ${current.package.dir} package directory."/>
<delete dir="${current.package.dir}" if="${directory::exists(current.package.dir)}"/>
<mkdir dir="${current.package.dir}"/>
</target>
<!-- Displays configuration info, usefull for working out why Spring.NET doesn't build -->
<target name="display-setup" depends="check-htmlhelp-compiler">
<!-- Mono 2.0 -->
<if test="${framework::exists('mono-2.0')}">
<property name="nant.settings.currentframework" value="mono-2.0"/>
<call target="display-target-framework"/>
</if>
<if test="${not framework::exists('mono-2.0')}">
<echo message="Mono 2.0 runtime is not available."/>
</if>
<!-- SSCLI 1.0 -->
<if test="${framework::exists('sscli-1.0')}">
<property name="nant.settings.currentframework" value="sscli-1.0"/>
<call target="display-target-framework"/>
</if>
<if test="${not framework::exists('sscli-1.0')}">
<echo message="SSCLI 1.0 runtime is not available."/>
</if>
<!-- HTML Help Compiler -->
<echo message="htmlhelp.compiler: ${htmlhelp.compiler}"/>
</target>
<target name="display-target-framework">
<echo message=""/>
<echo message="----------------------------------------------------------"/>
<echo message=" ${nant.settings.currentframework.description}"/>
<echo message="----------------------------------------------------------"/>
<echo message=""/>
<echo message="framework : ${framework::get-target-framework()}"/>
<echo message="description : ${framework::get-description(framework::get-target-framework())}"/>
<if test="${framework::sdk-exists(framework::get-target-framework())}">
<echo message="sdk directory : ${framework::get-sdk-directory(framework::get-target-framework())}"/>
</if>
<if test="${not framework::sdk-exists(framework::get-target-framework())}">
<echo message="sdk directory : &lt;not configured/available>"/>
</if>
<echo message="framework directory : ${framework::get-framework-directory(framework::get-target-framework())}"/>
<echo message="assembly directory : ${framework::get-assembly-directory(framework::get-target-framework())}"/>
<echo message=""/>
</target>
<!-- Target for setting the package configuration -->
<target name="set-package-configuration" depends="check-package-dir, check-package-version">
<property name="current.package.dir" value="${package.dir}/${project::get-name()}"/>
<!-- for docs packaging MLP -->
<!--
<property name="current.package.dir" value="l:/release/${project::get-name()}"/>
-->
<property name="doc.dir" value="${current.package.dir}/doc"/>
<property name="sdkdoc.dir" value="${doc.dir}/sdk"/>
</target>
<!-- Target for compiling all build configurations for all runtime configurations -->
<!-- <target name="compile-build-all" description="Compile all build configurations for all runtime configurations">
<echo message="Compiling all build configurations for all runtime configurations."/>
<call target="set-debug-build-configuration"/>
<call target="compile-build"/>
-->
<!-- make the release build, which requires Spring.Net.snk, only if making an distributable release -->
<!--<if test="${property::exists('project.build.package') and project.build.package}">
<call target="set-release-build-configuration"/>
<call target="compile-build"/>
</if>
</target>
-->
<!-- Target for compiling all runtime configurations in the current build configuration -->
<!--
<target name="compile-build" description="Compile current build configurations for all runtime configurations">
<echo message="Compiling all framework versions for the ${current.build.config} build configuration."/>
<call target="compile-build-3.5"/>
<call target="compile-build-4.0"/>
<call target="compile-build-4.5"/>
<call target="compile-build-mono-2.0"/>
</target>
-->
<target name="restore-nuget-packages" description="Restores NuGet packages that solution(s) reference">
<exec
program="${nuget.exe}"
commandline="restore Spring.NET.2010.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.Calculator\Spring.Calculator.2010.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.CodeConfig.Migration\Spring.CodeConfig.Migration.2010.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.Data.NHibernate.Northwind\Spring.Northwind.2010.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.DataQuickStart\Spring.DataQuickStart.2010.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.IoCQuickStart.MovieFinder\Spring.IocQuickStart.MovieFinder.2010.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.MsmqQuickStart\Spring.MsmqQuickStart.2010.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.Mvc3QuickStart\Spring.Mvc3QuickStart.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.Mvc4QuickStart\Spring.Mvc4QuickStart.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.Mvc5QuickStart\Spring.Mvc5QuickStart.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.NmsQuickStart\Spring.NmsQuickStart.2010.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.Scheduling.Quartz.Example\Spring.Scheduling.Quartz.Example.2010.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.TxQuickStart\Spring.TxQuickStart.2010.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\Spring.WebQuickStart\Spring.WebQuickStart.2010.sln"
workingdir="."
failonerror="true" />
<exec
program="${nuget.exe}"
commandline="restore ${spring.basedir}\examples\Spring\SpringAir\SpringAir.2010.sln"
workingdir="."
failonerror="true" />
</target>
<target name="compile-build-3.5" description="Builds for .NET 3.5 if available">
<if test="${net-3.5.installed}">
<call target="compile-net-3.5"/>
</if>
<if test="${not net-3.5.installed}">
<if test="${property::exists('project.build.package') and project.build.package}">
.NET 3.5 Build Skipped for Package
<fail message="The .NET Framework 3.5 is not available."/>
<echo message="The .NET Framework 3.5 is not available. Build skipped during package."/>
</if>
<if test="${not(property::exists('project.build.package') and project.build.package)}">
<echo message="The .NET Framework 3.5 is not available. Build skipped."/>
</if>
</if>
</target>
<target name="compile-build-4.0" description="Builds for .NET 4.0 if available">
<if test="${net-4.0.installed}">
<call target="compile-net-4.0"/>
</if>
<if test="${not net-4.0.installed}">
<if test="${property::exists('project.build.package') and project.build.package}">
.NET 4.0 Build Skipped for Package
<fail message="The .NET Framework 4.0 is not available."/>
<echo message="The .NET Framework 4.0 is not available. Build skipped during package."/>
</if>
<if test="${not(property::exists('project.build.package') and project.build.package)}">
<echo message="The .NET Framework 4.0 is not available. Build skipped."/>
</if>
</if>
</target>
<target name="compile-build-4.5" description="Builds for .NET 4.5 if available">
<if test="${net-4.5.installed}">
<call target="compile-net-4.5"/>
</if>
<if test="${not net-4.5.installed}">
<if test="${property::exists('project.build.package') and project.build.package}">
.NET 4.5 Build Skipped for Package
<fail message="The .NET Framework 4.5 is not available."/>
<echo message="The .NET Framework 4.5 is not available. Build skipped during package."/>
</if>
<if test="${not(property::exists('project.build.package') and project.build.package)}">
<echo message="The .NET Framework 4.5 is not available. Build skipped."/>
</if>
</if>
</target>
<!-- Targets for other .NET frameworks -->
<target name="compile-build-netcf-1.0" description="Builds for .NET 1.0 Compact Framework if available">
<if test="${framework::exists('netcf-1.0')}">
<call target="compile-netcf-1.0" />
</if>
<if test="${not framework::exists('netcf-1.0')}">
<if test="${property::exists('project.build.package') and project.build.package}">
<fail message="The .NET Compact Framework 1.0 is not available." />
</if>
<if test="${not(property::exists('project.build.package') and project.build.package)}">
<echo message="The .NET Compact Framework 1.0 is not available. Build skipped." />
</if>
</if>
</target>
<target name="compile-build-mono-2.0" description="Builds for mono 2.0 if available">
<if test="${framework::exists('mono-2.0')}">
<call target="compile-mono-2.0"/>
</if>
<if test="${not framework::exists('mono-2.0')}">
<if test="${property::exists('project.build.package') and project.build.package}">
<fail message="Mono 2.0 is not available."/>
</if>
<if test="${not(property::exists('project.build.package') and project.build.package)}">
<echo message="Mono 2.0 is not available. Build skipped."/>
</if>
</if>
</target>
<target name="compile" description="Builds the current build configuration for the current target framework."
depends="check-current-build-config">
<call target="compile-${framework::get-target-framework()}"/>
</target>
<target name="compile-test"> <!-- used as configurable template by all compile-{net|mono|netcf}-x.x targets -->
<property name="lib.dir" value="${spring.basedir}/lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}"/>
<property name="nh3.lib.dir" value="${nuget.packages.dir}/NHibernate/3.3.3.4001/lib/Net35"/>
<property name="iesi3.lib.dir" value="${nuget.packages.dir}/Iesi.Collections/3.3.3.4001/lib/Net35"/>
<property name="nh4.lib.dir" value="${nuget.packages.dir}/NHibernate/4.0.3.4000/lib/Net40"/>
<property name="iesi4.lib.dir" value="${nuget.packages.dir}/Iesi.Collections/4.0.1.4000/lib/Net40"/>
<property name="quartz2.lib.dir" value="${nuget.packages.dir}/Quartz/2.3.1/lib/net35"/>
<property name="nunit.lib.dir" value="${nuget.packages.dir}/NUnit/3.5.0/lib/net35"/>
<property name="common.logging.lib.dir" value="${nuget.packages.dir}/Common.Logging/3.0.0/lib/net35"/>
<property name="common.logging.core.lib.dir" value="${nuget.packages.dir}/Common.Logging.Core/3.0.0/lib/net35"/>
<!-- we use same libs for both 4.0 and 4.5 builds -->
<if test="${nant.settings.currentframework == 'net-4.0' or nant.settings.currentframework == 'net-4.5'}">
<property name="common.logging.lib.dir" value="${nuget.packages.dir}/Common.Logging/3.0.0/lib/net40"/>
<property name="common.logging.core.lib.dir" value="${nuget.packages.dir}/Common.Logging.Core/3.0.0/lib/net40"/>
<property name="lib.dir" value="${spring.basedir}/lib/net/4.0"/>
<property name="quartz2.lib.dir" value="${nuget.packages.dir}/Quartz/2.3.1/lib/net40"/>
<property name="nunit.lib.dir" value="${nuget.packages.dir}/NUnit/3.5.0/lib/net40"/>
</if>
<call target="copylibtobin"/>
<!-- build assemblies -->
<nant buildfile="src/Spring/Spring.Core/Spring.Core.build" target="build" />
<nant buildfile="src/Spring/Spring.Aop/Spring.Aop.build" target="build" if="${build-aop}"/>
<nant buildfile="src/Spring/Spring.Web/Spring.Web.build" target="build" if="${build-web}"/>
<nant buildfile="src/Spring/Spring.Web.Extensions/Spring.Web.Extensions.build" target="build" if="${build-web and (nant.settings.currentframework == 'net-3.5' or nant.settings.currentframework == 'net-4.0' or nant.settings.currentframework == 'net-4.5' or nant.settings.currentframework == 'mono-2.0')}"/>
<nant buildfile="src/Spring/Spring.Web.Mvc3/Spring.Web.Mvc3.build" target="build" if="${nant.settings.currentframework == 'net-4.0' or nant.settings.currentframework == 'net-4.5'}"/>
<nant buildfile="src/Spring/Spring.Web.Mvc4/Spring.Web.Mvc4.build" target="build" if="${nant.settings.currentframework == 'net-4.0' or nant.settings.currentframework == 'net-4.5'}"/>
<nant buildfile="src/Spring/Spring.Web.Mvc5/Spring.Web.Mvc5.build" target="build" if="${nant.settings.currentframework == 'net-4.5'}"/>
<nant buildfile="src/Spring/Spring.Data/Spring.Data.build" target="build" if="${build-data}"/>
<nant buildfile="src/Spring/Spring.Data.NHibernate3/Spring.Data.NHibernate3.build" target="build" if="${build-data}"/>
<nant buildfile="src/Spring/Spring.Data.NHibernate4/Spring.Data.NHibernate4.build" target="build" if="${build-data and (nant.settings.currentframework == 'net-4.0' or nant.settings.currentframework == 'net-4.5')}"/>
<nant buildfile="src/Spring/Spring.Services/Spring.Services.build" target="build" if="${build-services}"/>
<nant buildfile="src/Spring/Spring.Testing.NUnit/Spring.Testing.NUnit.build" target="build" if="${build-testing-nunit}"/>
<nant buildfile="src/Spring/Spring.Testing.Microsoft/Spring.Testing.Microsoft.build" target="build" if="${build-testing-microsoft}"/>
<nant buildfile="src/Spring/Spring.Messaging.Ems/Spring.Messaging.Ems.build" target="build" if="${build-ems and (nant.settings.currentframework == 'net-3.5' or nant.settings.currentframework == 'net-4.0' or nant.settings.currentframework == 'net-4.5' )}"/>
<nant buildfile="src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.build" target="build" if="${build-nms}"/>
<nant buildfile="src/Spring/Spring.Scheduling.Quartz2/Spring.Scheduling.Quartz2.build" target="build" if="${build-quartz}"/>
<nant buildfile="src/Spring/Spring.Messaging/Spring.Messaging.build" target="build" if="${build-msmq}"/>
<nant buildfile="src/Spring/Spring.Template.Velocity/Spring.Template.Velocity.build" target="build" if="${build-velocity}"/>
<nant buildfile="src/Spring/Spring.Template.Velocity.Castle/Spring.Template.Velocity.Castle.build" target="build" if="${build-velocity}"/>
<!--"Spring.ConversationWA.NH*.dll" should be at last to prevent the other assemblies are compiled with reference to this-->
<nant buildfile="src/Spring/Spring.Web.Conversation.NHibernate3/Spring.Web.Conversation.NHibernate3.build" target="build" if="${build-conversation}"/>
<!-- test assemblies -->
<nant buildfile="test/Spring/Spring.Core.Tests/Spring.Core.Tests.build" target="test"/>
<nant buildfile="test/Spring/Spring.Aop.Tests/Spring.Aop.Tests.build" target="test" if="${build-aop}"/>
<nant buildfile="test/Spring/Spring.Data.Tests/Spring.Data.Tests.build" target="test" if="${build-data}"/>
<nant buildfile="test/Spring/Spring.Data.Integration.Tests/Spring.Data.Integration.Tests.build" target="test" if="${build-data}"/>
<nant buildfile="test/Spring/Spring.Data.NHibernate3.Tests/Spring.Data.NHibernate3.Tests.build" target="test" if="${build-data}"/>
<nant buildfile="test/Spring/Spring.Data.NHibernate3.Integration.Tests/Spring.Data.NHibernate3.Integration.Tests.build" target="test" if="${build-data}"/>
<nant buildfile="test/Spring/Spring.Data.NHibernate4.Tests/Spring.Data.NHibernate4.Tests.build" target="test" if="${build-data and (nant.settings.currentframework == 'net-4.0' or nant.settings.currentframework == 'net-4.5')}"/>
<nant buildfile="test/Spring/Spring.Data.NHibernate4.Integration.Tests/Spring.Data.NHibernate4.Integration.Tests.build" target="test" if="${build-data and (nant.settings.currentframework == 'net-4.0' or nant.settings.currentframework == 'net-4.5' )}"/>
<nant buildfile="test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests.build" target="test" if="${build-data and (nant.settings.currentframework == 'net-4.0' or nant.settings.currentframework == 'net-4.5' )}"/>
<!-- newer NUnit runners cannot handle test properly, so running just the build target -->
<nant buildfile="test/Spring/Spring.Services.Tests/Spring.Services.Tests.build" target="build" if="${build-services}"/>
<nant buildfile="test/Spring/Spring.Web.Tests/Spring.Web.Tests.build" target="test" if="${build-web and nant.settings.currentframework != 'net-3.5'}"/>
<nant buildfile="test/Spring/Spring.Web.Mvc3.Tests/Spring.Web.Mvc3.Tests.build" target="test" if="${build-web and nant.settings.currentframework == 'net-4.0' or nant.settings.currentframework == 'net-4.5'}"/>
<nant buildfile="test/Spring/Spring.Web.Mvc4.Tests/Spring.Web.Mvc4.Tests.build" target="test" if="${build-web and nant.settings.currentframework == 'net-4.0' or nant.settings.currentframework == 'net-4.5'}"/>
<nant buildfile="test/Spring/Spring.Web.Mvc5.Tests/Spring.Web.Mvc5.Tests.build" target="test" if="${build-web and nant.settings.currentframework == 'net-4.5'}"/>
<nant buildfile="test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.build" target="test" if="${build-testing-nunit}"/>
<nant buildfile="test/Spring/Spring.Testing.Microsoft.Tests/Spring.Testing.Microsoft.Tests.build" target="test" if="${run-testing-microsoft and build-testing-microsoft}"/>
<nant buildfile="test/Spring/Spring.Messaging.Ems.Tests/Spring.Messaging.Ems.Tests.build" target="test" if="${build-ems}"/>
<nant buildfile="test/Spring/Spring.Messaging.Ems.Integration.Tests/Spring.Messaging.Ems.Integration.Tests.build" target="test" if="${build-ems}"/>
<nant buildfile="test/Spring/Spring.Messaging.Nms.Tests/Spring.Messaging.Nms.Tests.build" target="test" if="${build-nms}"/>
<nant buildfile="test/Spring/Spring.Messaging.Nms.Integration.Tests/Spring.Messaging.Nms.Integration.Tests.build" target="test" if="${build-nms}"/>
<nant buildfile="test/Spring/Spring.Scheduling.Quartz2.Tests/Spring.Scheduling.Quartz2.Tests.build" target="test" if="${build-quartz}"/>
<nant buildfile="test/Spring/Spring.Messaging.Tests/Spring.Messaging.Tests.build" target="test" if="${build-msmq}"/>
<nant buildfile="test/Spring/Spring.Template.Velocity.Tests/Spring.Template.Velocity.Tests.build" target="test" if="${build-velocity}"/>
<nant buildfile="test/Spring/Spring.Template.Velocity.Castle.Tests/Spring.Template.Velocity.Castle.Tests.build" target="test" if="${build-velocity}"/>
<!--"Spring.ConversationWA.NH*.Tests.dll" should be at last to prevent the other tests are compiled with reference to this-->
<!-- conversation tests disabled for now because with .NET 4.5 installed NUnitAsp does not seem to work anymore -->
<if test="${nant.settings.currentframework == 'net-3.5'}">
<nant buildfile="test/Spring/Spring.Web.Conversation.NHibernate3.Tests/Spring.Web.Conversation.NHibernate3.Tests.build" target="test" if="${build-conversation}"/>
</if>
<!-- Main solutions and examples are compiled via task build-solutions -->
<!-- build coverage summary -->
<exec program="${tool.dir}/ncoverexplorer/ncoverexplorer.console.exe" workingdir="${current.bin.dir}" failonerror="false" if="${test.coverage.tool == 'ncover' and test.withcoverage}">
<arg value="/xml:&quot;${current.bin.dir}/TestCoverageSummary.xml&quot;" />
<arg value="/report:ModuleClassFunctionSummary" />
<arg value="/sort:4" />
<arg value="/minCoverage:80" />
<arg value="/q" />
<arg path="${current.bin.dir}/*-TestCoverage.xml" />
</exec>
<exec program="${tool.dir}\ReportGenerator\bin\ReportGenerator.exe" workingdir="${current.bin.dir}" verbose="true" if="${test.coverage.tool == 'opencover' and test.withcoverage}">
<arg value="*-TestCoverage.xml" />
<arg path="${current.bin.dir}\CoverageReport\Summary" />
</exec>
</target>
<target name="compile-net-3.5" description="Builds .NET Framework 3.5 version"
depends="set-net-3.5-runtime-configuration, check-spring-basedir, clean-current-bin-dir, restore-nuget-packages">
<if test="${property::exists('mstest.exe')}">
<property name="mstest.exe.current" value="${property::get-value('mstest.exe')}" />
<!-- <property name="mstest.exe.current" value="${string::replace(property::get-value('mstest.exe'), 'Microsoft Visual Studio 10.0', 'Microsoft Visual Studio 9.0')}" /> -->
</if>
<if test="${property::exists('mstest.exe')}">
<property name="vs-net.mstest.bin.dir.current" value="${property::get-value('vs-net.mstest.bin.dir')}" />
<!-- <property name="vs-net.mstest.bin.dir.current" value="${string::replace(property::get-value('vs-net.mstest.bin.dir'), 'Microsoft Visual Studio 10.0', 'Microsoft Visual Studio 9.0')}" /> -->
</if>
<call target="copykeys" if="${project.build.sign}"/>
<call target="common.generate-assemblyinfo"/>
<property name="build-ems" value="false" overwrite="true" />
<property name="build-nms" value="true" overwrite="true" />
<property name="build-quartz" value="true" overwrite="true" />
<property name="build-msmq" value="true" overwrite="true" />
<property name="build-msmq-tests" value="true" overwrite="true" />
<property name="build-velocity" value="true" overwrite="true" />
<property name="lib.dir" value="${spring.basedir}/lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}"/>
<call target="copylibs" />
<call target="compile-test" />
</target>
<target name="compile-net-4.0" description="Builds .NET Framework 4.0 version"
depends="set-net-4.0-runtime-configuration, check-spring-basedir, clean-current-bin-dir, restore-nuget-packages">
<property name="test.withcoverage" value="false" overwrite="true"/>
<if test="${property::exists('mstest.exe')}">
<property name="mstest.exe.current" value="${property::get-value('mstest.exe')}" />
<!-- <property name="mstest.exe.current" value="${string::replace(property::get-value('mstest.exe'), 'Microsoft Visual Studio 10.0', 'Microsoft Visual Studio 9.0')}" /> -->
</if>
<if test="${property::exists('mstest.exe')}">
<property name="vs-net.mstest.bin.dir.current" value="${property::get-value('vs-net.mstest.bin.dir')}" />
<!-- <property name="vs-net.mstest.bin.dir.current" value="${string::replace(property::get-value('vs-net.mstest.bin.dir'), 'Microsoft Visual Studio 10.0', 'Microsoft Visual Studio 9.0')}" /> -->
</if>
<call target="copykeys" if="${project.build.sign}"/>
<call target="common.generate-assemblyinfo"/>
<property name="build-ems" value="false" overwrite="true" />
<property name="build-nms" value="true" overwrite="true" />
<property name="build-quartz" value="true" overwrite="true" />
<property name="build-msmq" value="true" overwrite="true" />
<property name="build-msmq-tests" value="true" overwrite="true" />
<property name="build-velocity" value="true" overwrite="true" />
<property name="lib.dir" value="${spring.basedir}/lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}"/>
<call target="copylibs" />
<call target="compile-test" />
</target>
<target name="compile-net-4.5" description="Builds .NET Framework 4.5 version"
depends="set-net-4.5-runtime-configuration, check-spring-basedir, clean-current-bin-dir, restore-nuget-packages">
<property name="test.withcoverage" value="false" overwrite="true"/>
<if test="${property::exists('mstest.exe')}">
<property name="mstest.exe.current" value="${property::get-value('mstest.exe')}" />
<!-- <property name="mstest.exe.current" value="${string::replace(property::get-value('mstest.exe'), 'Microsoft Visual Studio 10.0', 'Microsoft Visual Studio 9.0')}" /> -->
</if>
<if test="${property::exists('mstest.exe')}">
<property name="vs-net.mstest.bin.dir.current" value="${property::get-value('vs-net.mstest.bin.dir')}" />
<!-- <property name="vs-net.mstest.bin.dir.current" value="${string::replace(property::get-value('vs-net.mstest.bin.dir'), 'Microsoft Visual Studio 10.0', 'Microsoft Visual Studio 9.0')}" /> -->
</if>
<call target="copykeys" if="${project.build.sign}"/>
<call target="common.generate-assemblyinfo"/>
<property name="build-ems" value="false" overwrite="true" />
<property name="build-nms" value="true" overwrite="true" />
<property name="build-quartz" value="true" overwrite="true" />
<property name="build-msmq" value="true" overwrite="true" />
<property name="build-msmq-tests" value="true" overwrite="true" />
<property name="build-velocity" value="true" overwrite="true" />
<property name="lib.dir" value="${spring.basedir}/lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}"/>
<if test="${nant.settings.currentframework == 'net-4.5'}">
<property name="lib.dir" value="${spring.basedir}/lib/net/4.0"/>
</if>
<call target="copylibs" />
<call target="compile-test" />
</target>
<target name="compile-mono-2.0" description="Builds MONO Framework 2.0 version"
depends="set-mono-2.0-runtime-configuration, check-spring-basedir, clean-current-bin-dir">
<call target="copykeys" if="${project.build.sign}"/>
<call target="common.generate-assemblyinfo"/>
<property name="build-ems" value="false" overwrite="true" />
<property name="build-msmq" value="false" overwrite="true" />
<property name="build-msmq-tests" value="false" overwrite="true" />
<call target="compile-test" />
</target>
<target name="copykeys">
<if test="${not file::exists(spring.basedir + '/Spring.Net.snk')}">
<echo message="Key file not found. You can generate a key file by running 'sn -k Spring.Net.snk'."/>
<echo message="The generated key file should be stored in the Spring.Net base directory."/>
</if>
<if test="${file::exists(spring.basedir + '/Spring.Net.snk')}">
<!-- copy the Spring key file to the location where the compiler expects it to be -->
<copy file="Spring.Net.snk" todir="${current.bin.dir}"/>
</if>
<!-- for .NET 2.0 need to provide keyfile argument to compiler -->
<if test="${net-2.0}" if="${project.build.sign}">
<property name="compiler.args" value="/keyfile:..\..\..\Spring.Net.snk"/>
</if>
</target>
<target name="copylibtobin">
<echo message="Current bin dir = ${current.bin.dir}"/>
<echo message="Current lib dir = ${lib.dir}"/>
<!-- copy framework-neutral libraries -->
<copy todir="${current.bin.dir}" verbose="${copy-verbose}">
<fileset basedir="lib">
<include name="*.dll"/>
<include name="*.xml"/>
</fileset>
</copy>
<!-- copy framework-specific libraries -->
<copy todir="${current.bin.dir}" verbose="${copy-verbose}">
<fileset basedir="${lib.dir}">
<include name="*.dll"/>
<include name="*.xml"/>
<exclude name="nunit.core.*" />
</fileset>
</copy>
<!-- copy nuget libs -->
<copy todir="${current.bin.dir}" verbose="${copy-verbose}">
<fileset basedir="${nunit.lib.dir}">
<include name="*.dll"/>
<include name="*.xml"/>
</fileset>
</copy>
</target>
<target name="copylibs">
<property name="lib20.dir" value="${spring.basedir}\lib\${framework::get-family(framework::get-target-framework())}\2.0"/>
<echo message="Current lib20 dir = ${lib20.dir}"/>
<echo message="Current lib dir = ${lib.dir}"/>
<mkdir dir="${lib.dir}" failonerror="false" />
<copy todir="${lib.dir}" verbose="${copy-verbose}">
<fileset basedir="${lib20.dir}">
<include name="*.dll"/>
<exclude if="${net-3.5}" name="**/System.Web.Extensions.dll"/>
<exclude if="${net-4.0}" name="**/System.Web.Extensions.dll"/>
<exclude if="${net-4.5}" name="**/System.Web.Extensions.dll"/>
<include name="*.xml"/>
</fileset>
</copy>
</target>
<!-- Top level targets -->
<!-- target for developers to do just debug build and test everything in CVS -->
<target name="test" description="build and test">
<echo message="Compiling debug configuration for all runtime configurations."/>
<property name="nant.target.root.name" value="build"/>
<call target="build-all-function"/>
</target>
<target name="build-3.5">
<call target="set-build-namespaces-release"/>
<echo message="------------------------"/>
<echo message="Building .NET 3.5 DEBUG "/>
<echo message="------------------------"/>
<call target="set-debug-build-configuration"/>
<call target="compile-build-3.5"/>
<if test="${property::exists('project.build.package') and project.build.package}">
<echo message="--------------------------"/>
<echo message="Building .NET 3.5 RELEASE "/>
<echo message="--------------------------"/>
<call target="set-release-build-configuration"/>
<call target="compile-build-3.5"/>
</if>
</target>
<target name="build-4.0">
<call target="set-build-namespaces-release"/>
<echo message="------------------------"/>
<echo message="Building .NET 4.0 DEBUG "/>
<echo message="------------------------"/>
<call target="set-debug-build-configuration"/>
<call target="compile-build-4.0"/>
<if test="${property::exists('project.build.package') and project.build.package}">
<echo message="--------------------------"/>
<echo message="Building .NET 4.0 RELEASE "/>
<echo message="--------------------------"/>
<call target="set-release-build-configuration"/>
<call target="compile-build-4.0"/>
</if>
</target>
<target name="build-4.5">
<call target="set-build-namespaces-release"/>
<echo message="------------------------"/>
<echo message="Building .NET 4.5 DEBUG "/>
<echo message="------------------------"/>
<call target="set-debug-build-configuration"/>
<call target="compile-build-4.5"/>
<if test="${property::exists('project.build.package') and project.build.package}">
<echo message="--------------------------"/>
<echo message="Building .NET 4.5 RELEASE "/>
<echo message="--------------------------"/>
<call target="set-release-build-configuration"/>
<call target="compile-build-4.5"/>
</if>
</target>
<target name="build-mono-2.0" if="false">
<if test="${property::exists('project.build.package') and project.build.package}">
<call target="set-release-build-configuration"/>
<echo message="--------------------------"/>
<echo message="Building MONO 2.0 RELEASE "/>
<echo message="--------------------------"/>
<call target="compile-build-mono-2.0"/>
</if>
<echo message="--------------------------"/>
<echo message="Building MONO 2.0 DEBUG "/>
<echo message="--------------------------"/>
<call target="set-debug-build-configuration"/>
<call target="compile-build-mono-2.0"/>
</target>
<target name="clean" description="Deletes current build configuration">
<call target="cleanall"/>
</target>
<target name="cleanall" description="Deletes every build configuration">
<property name="target.dir" value="${path::combine(project::get-base-directory(),'build')}"/>
<echo message="Deleting all builds from all configurations : '${target.dir}'"/>
<delete
dir="${project::get-base-directory()}/build/net"
if="${directory::exists(target.dir)}"
failonerror="false"/>
</target>
<target name="clean-obj" description="Clean all 'obj' and 'bin' folders">
<delete dir="src/Spring/Spring.Aop/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Aop/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Core/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Core/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Data/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Data/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Data.NHibernate3/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Data.NHibernate3/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Data.NHibernate4/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Data.NHibernate4/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Services/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Services/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Messaging.Nms/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Messaging.Nms/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Messaging.Ems/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Messaging.Ems/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Messaging/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Messaging/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Scheduling.Quartz2/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Scheduling.Quartz2/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Template.Velocity/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Template.Velocity/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Testing.NUnit/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Testing.NUnit/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Testing.Microsoft/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Testing.Microsoft/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Web/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Web.Conversation.NHibernate3/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Web.Conversation.NHibernate3/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Web.Conversation.NHibernate4/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Web.Conversation.NHibernate4/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Web/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Web.Extensions/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Web.Extensions/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Web.Mvc3/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Web.Mvc3/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Web.Mvc4/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Web.Mvc4/bin" failonerror="false"/>
<delete dir="src/Spring/Spring.Web.Mvc5/obj" failonerror="false"/>
<delete dir="src/Spring/Spring.Web.Mvc5/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Messaging.Ems.Integration.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Messaging.Ems.Integration.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Scheduling.Quartz2.Integration.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Scheduling.Quartz2.Integration.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Mvc3.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Mvc3.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Mvc4.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Mvc4.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Mvc5.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Mvc5.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Aop.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Aop.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Core.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Core.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.Integration.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.Integration.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.NHibernate3.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.NHibernate3.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.NHibernate3.Integration.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.NHibernate3.Integration.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.NHibernate4.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.NHibernate4.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.NHibernate4.Integration.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.NHibernate4.Integration.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Services.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Services.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Messaging.Nms.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Messaging.Nms.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Messaging.Nms.Integration.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Messaging.Nms.Integeration.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Messaging.Ems.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Messaging.Ems.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Messaging.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Messaging.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Scheduling.Quartz2.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Scheduling.Quartz2.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Template.Velocity.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Template.Velocity.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Testing.Microsoft.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Testing.Microsoft.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Testing.NUnit.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Testing.NUnit.Tests/bin" failonerror="false"/>
<delete failonerror="false">
<fileset basedir="test/Spring/Spring.Web.Conversation.NHibernate3.Tests/Data/Spring/ConversationWA/WebConversationStateTest/Bin">
<include name="*.dll"/>
<include name="*.xml"/>
<include name="*.pdb"/>
</fileset>
<fileset basedir="test/Spring/Spring.Web.Conversation.NHibernate4.Tests/Data/Spring/ConversationWA/WebConversationStateTest/Bin">
<include name="*.dll"/>
<include name="*.xml"/>
<include name="*.pdb"/>
</fileset>
</delete>
<delete dir="test/Spring/Spring.Messaging.Ems.Integration.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Messaging.Ems.Integration.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Scheduling.Quartz2.Integration.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Scheduling.Quartz2.Integration.Tests/obj" failonerror="false"/>
<delete failonerror="false">
<fileset basedir="test/Spring/Spring.Services.Tests/Data/Spring/WindowsService/Cassini/wwwroot/bin">
<include name="*.dll"/>
<include name="*.xml"/>
<include name="*.pdb"/>
</fileset>
</delete>
<delete dir="test/Spring/Spring.Web.Mvc3.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Mvc3.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Mvc4.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Mvc4.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Mvc5.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Mvc5.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Conversation.NHibernate3.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Conversation.NHibernate3.Tests/bin" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Conversation.NHibernate4.Tests/obj" failonerror="false"/>
<delete dir="test/Spring/Spring.Web.Conversation.NHibernate4.Tests/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.CachingQuickStart/src/Spring.CachingQuickStart.Web/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.CachingQuickStart/src/Spring.CachingQuickStart.Web/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Aspects/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Aspects/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Calculator.ClientApp/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Calculator.ClientApp/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Calculator.Contract/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Calculator.Contract/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Calculator.RegisterComponentServices/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Calculator.RegisterComponentServices/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Calculator.RemoteApp/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Calculator.RemoteApp/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Calculator.Services/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Calculator.Services/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Calculator.Web.2003/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Calculator/src/Spring.Calculator.Web.2003/bin" failonerror="false"/>
<delete dir="examples/Spring/SpringAir/src/SpringAir.Core/obj" failonerror="false"/>
<delete dir="examples/Spring/SpringAir/src/SpringAir.Core/bin" failonerror="false"/>
<delete dir="examples/Spring/SpringAir/src/SpringAir.Data.Ado/obj" failonerror="false"/>
<delete dir="examples/Spring/SpringAir/src/SpringAir.Data.Ado/bin" failonerror="false"/>
<delete dir="examples/Spring/SpringAir/src/SpringAir.Data.IBatis/obj" failonerror="false"/>
<delete dir="examples/Spring/SpringAir/src/SpringAir.Data.IBatis/bin" failonerror="false"/>
<delete dir="examples/Spring/SpringAir/test/SpringAir.Core.Tests/obj" failonerror="false"/>
<delete dir="examples/Spring/SpringAir/test/SpringAir.Core.Tests/bin" failonerror="false"/>
<delete dir="examples/Spring/SpringAir/test/SpringAir.Data.Ado.Tests/obj" failonerror="false"/>
<delete dir="examples/Spring/SpringAir/test/SpringAir.Data.Ado.Tests/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Common/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Common/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step1/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step1/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step2/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step2/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step3/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step3/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step4/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step4/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step5/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step5/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step6/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step6/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step7/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step7/obj" failonerror="false"/>
<delete failonerror="false">
<fileset basedir="examples/Spring/Spring.Calculator/src/Spring.Calculator.Web.2005/Bin">
<include name="*.dll"/>
<include name="*.xml"/>
<include name="*.pdb"/>
</fileset>
</delete>
<delete failonerror="false">
<fileset basedir="examples/Spring/Spring.Calculator/src/Spring.Calculator.Web.2005/Bin">
<include name="*.dll"/>
<include name="*.xml"/>
<include name="*.pdb"/>
</fileset>
</delete>
<delete dir="examples/Spring/Spring.DataQuickStart/src/Spring/Spring.DataQuickStart/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.DataQuickStart/test/Spring/Spring.DataQuickStart.Tests/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.IoCQuickStart.AppContext/src/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.IoCQuickStart.AppContext/src/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.IoCQuickStart.EventRegistry/src/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.IoCQuickStart.EventRegistry/src/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.IoCQuickStart.MovieFinder/src/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.IoCQuickStart.MovieFinder/src/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.MsmqQuickStart/src/Spring/Spring.MsmqQuickStart.Client/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.MsmqQuickStart/src/Spring/Spring.MsmqQuickStart.Client/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.MsmqQuickStart/src/Spring/Spring.MsmqQuickStart.Common/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.MsmqQuickStart/src/Spring/Spring.MsmqQuickStart.Common/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.MsmqQuickStart/src/Spring/Spring.MsmqQuickStart.Server/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.MsmqQuickStart/src/Spring/Spring.MsmqQuickStart.Server/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.NmsQuickStart/src/Spring/Spring.NmsQuickStart.Client/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.NmsQuickStart/src/Spring/Spring.NmsQuickStart.Client/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.NmsQuickStart/src/Spring/Spring.NmsQuickStart.Common/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.NmsQuickStart/src/Spring/Spring.NmsQuickStart.Common/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.NmsQuickStart/src/Spring/Spring.NmsQuickStart.Server/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.NmsQuickStart/src/Spring/Spring.NmsQuickStart.Server/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.TxQuickStart/src/Spring/Spring.TxQuickStart/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.TxQuickStart/src/Spring/Spring.TxQuickStart/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.TxQuickStart/test/Spring/Spring.TxQuickStart.Tests/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.TxQuickStart/test/Spring/Spring.TxQuickStart.Tests/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.WcfQuickStart/src/Spring.WcfQuickStart.Aspects/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.WcfQuickStart/src/Spring.WcfQuickStart.Aspects/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.WcfQuickStart/src/Spring.WcfQuickStart.ClientApp/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.WcfQuickStart/src/Spring.WcfQuickStart.ClientApp/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.WcfQuickStart/src/Spring.WcfQuickStart.Contracts/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.WcfQuickStart/src/Spring.WcfQuickStart.Contracts/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.WcfQuickStart/src/Spring.WcfQuickStart.ServerApp/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.WcfQuickStart/src/Spring.WcfQuickStart.ServerApp/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.WcfQuickStart/src/Spring.WcfQuickStart.ServerWeb/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.WcfQuickStart/src/Spring.WcfQuickStart.ServerWeb/obj" failonerror="false"/>
<delete failonerror="false">
<fileset basedir="examples/Spring/Spring.Web.Extensions.Example/src/Spring.Web.Extensions.Example.2008/Bin">
<include name="*.dll"/>
<include name="*.xml"/>
<include name="*.pdb"/>
</fileset>
</delete>
<delete failonerror="false">
<fileset basedir="examples/Spring/Spring.Web.Extensions.Example/src/Spring.Web.Extensions.Example.2010/Bin">
<include name="*.dll"/>
<include name="*.xml"/>
<include name="*.pdb"/>
</fileset>
</delete>
<delete dir="examples/Spring/SpringAir/src/SpringAir.Web.2005.References/bin" failonerror="false"/>
<delete dir="examples/Spring/SpringAir/src/SpringAir.Web.2005.References/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Dao/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Dao/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Dao.NHibernate/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Dao.NHibernate/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Service/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Service/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/bin" failonerror="false"/>
<delete dir="examples/Spring/Spring.Data.NHibernate.Northwind/test/Spring.Northwind.IntegrationTests/obj" failonerror="false"/>
<delete dir="examples/Spring/Spring.Data.NHibernate.Northwind/test/Spring.Northwind.IntegrationTests/bin" failonerror="false"/>
</target>
<target name="package" depends="set-package-configuration" description="Build and Package distribution">
<property name="project.build.sign" value="true" overwrite="false" />
<property name="project.build.package" value="true"/>
<call target="clean-current-package-dir"/>
<property name="nant.target.root.name" value="build"/>
<call target="set-build-namespaces-release"/>
<property name="project.build.sign" value="true" overwrite="false" />
<property name="project.build.package" value="true"/>
<call target="build-all-function"/>
<call target="doc"/>
<call target="package-release-files"/>
<call target="package-nuget" />
</target>
<target name="doc">
<call target="doc-reference" cascade="false" />
<call target="doc-sdk" cascade="false" if="${doc.sdk}"/>
</target>
<target name="doc-reference">
<nant buildfile="./doc/reference/docbook.build" />
</target>
<target name="doc-sdk">
<echo message="Creating SDK Documentation for Spring.NET" />
<!-- clean tmp dir -->
<delete dir="./doc/sdk/target" failonerror="false" />
<exec workingdir="." program="./build-support/tools/ndoc3/NDoc3Console.exe">
<arg value="-project=./doc/sdk/Spring.NET-net-2.0.ndoc" />
</exec>
<!-- copy sdk docs to final destination -->
<move todir="./doc/sdk/target/htmlhelp" overwrite="true">
<fileset basedir="./doc/sdk/target/tmp/">
<include name="*.chm"/>
</fileset>
</move>
<move todir="./doc/sdk/target/html" overwrite="true">
<fileset basedir="./doc/sdk/target/tmp/">
<include name="**/*"/>
<exclude name="*.chw" />
<exclude name="*.hhc" />
<exclude name="*.hhk" />
<exclude name="*.hhp" />
<exclude name="*.chm" />
<exclude name="ndoc3_msdn_temp" />
</fileset>
</move>
<!-- clean tmp dir -->
<delete dir="./doc/sdk/target/tmp" failonerror="false" />
</target>
<target name="package-release">
<call target="set-release-build-configuration"/>
<call target="package-release-files"/>
</target>
<!--
Target to use when packaging as a standalone .zip file. VS.NET docs
included but compressed sdk-web directory is. Intended for mono developers
-->
<target name="package-zip" description="Build and Package distribution as .zip file">
<call target="package"/>
<property name="project.zip-path" value="${package.dir}/${project.name}-${package.version}.zip"/>
<zip zipfile="${project.zip-path}">
<fileset basedir="${package.dir}/${project.name}-${package.version}">
<include name="**/*"/>
<exclude name="**/sdk-web/**"/>
</fileset>
</zip>
</target>
<target name="dailysnapshot">
<property name="nant.target.root.name" value="daily-build"/>
<property name="project.build.sign" value="true"/>
<!-- call target="copykeys"/ -->
<!-- build all binaries -->
<call target="build-all-function"/>
<call target="package-cvs"/>
<call target="upload-cvs-release"/>
</target>
<target name="build-all-function" description="Build what is in cvs taking into account approrpiate clr versions and root target name">
<call target="${nant.target.root.name}-3.5" />
<call target="${nant.target.root.name}-4.0" />
<call target="${nant.target.root.name}-4.5" />
<!-- ignore Mono 2.0 -->
<!-- <call target="${nant.target.root.name}-mono-2.0" /> -->
<!-- build all Spring.NET solutions and example applications -->
<call target="build-solutions" />
</target>
<target name="daily-build-3.5">
<call target="set-build-namespaces-all"/>
<call target="set-package-configuration"/>
<call target="set-debug-build-configuration"/>
<call target="compile-build-3.5"/>
<call target="set-release-build-configuration"/>
<call target="compile-build-3.5"/>
</target>
<target name="daily-build-4.0">
<call target="set-build-namespaces-all"/>
<call target="set-package-configuration"/>
<call target="set-debug-build-configuration"/>
<call target="compile-build-4.0"/>
<call target="set-release-build-configuration"/>
<call target="compile-build-4.0"/>
</target>
<target name="daily-build-4.5">
<call target="set-build-namespaces-all"/>
<call target="set-package-configuration"/>
<call target="set-debug-build-configuration"/>
<call target="compile-build-4.5"/>
<call target="set-release-build-configuration"/>
<call target="compile-build-4.5"/>
</target>
<!-- Target to use when packaging everything in CVS -->
<target name="package-cvs" description="Build and Package distribution">
<property name="project.build.package" value="false"/>
<tstamp/>
<property name="package.version" value="${tstamp.date}-${tstamp.time}"/>
<!-- nant buildfile="./doc/reference/docbook.build" target="all"/ -->
<call target="doc" />
<call target="set-debug-build-configuration"/>
<call target="package-release-files"/>
<property name="project.zip-path" value="${package.dir}/${project.name}-${package.version}.zip"/>
<!-- for some reason this isn't being properly excluded in src.to.copy -->
<delete>
<fileset basedir="${current.package.dir}">
<include name="**/${project.name}-SDK-HTML.zip"/>
</fileset>
</delete>
<zip zipfile="${project.zip-path}">
<fileset basedir="${current.package.dir}">
<include name="**/*"/>
<exclude name="**/sdk-web/**"/>
</fileset>
</zip>
</target>
<target name="package-tools">
<!-- copy third-party tools -->
<mkdir dir="${current.package.dir}/build-support/tools"/>
<copy todir="${current.package.dir}/build-support/tools" verbose="${copy-verbose}">
<fileset basedir="build-support/tools">
<include name="antlr-2.7.6/**/*"/>
<include name="nunit/**/*"/>
<include name="ncover/**/*"/>
<include name="ncoverexplorer/**/*"/>
<include name="ndoc3/**/*"/>
</fileset>
</copy>
</target>
<target name="test-zip">
<property name="project.build.package" value="false"/>
<tstamp/>
<property name="package.version" value="${tstamp.date}-${tstamp.time}"/>
<call target="set-build-namespaces-all"/>
<call target="set-package-configuration"/>
<call target="set-debug-build-configuration"/>
<property name="project.zip-path" value="${package.dir}/${project.name}-${package.version}.zip"/>
<echo message="project.zip-path = ${project.zip-path}"/>
<delete>
<fileset basedir="${current.package.dir}">
<include name="**/${project.name}-SDK-HTML.zip"/>
</fileset>
</delete>
<zip zipfile="${project.zip-path}">
<fileset basedir="${current.package.dir}">
<include name="**/*"/>
<exclude name="**/sdk-web/**"/>
</fileset>
</zip>
</target>
<target name="upload-cvs-release">
<call target="set-package-configuration"/>
<property name="filetoupload" value="${project.name}-${package.version}.zip"/>
<property name="spring.ssh.server" value="s2-prod-wwworg-p1.vmware.com" />
<property name="spring.web.path" value="/var/www/domains/springframework.net/www/htdocs" />
<!-- setup property that holds partial path to be used by scp -->
<property name="serverpart" value="${spring.ssh.server + ':' + spring.web.path}" />
<property name="nightly.builds.path" value="downloads/nightly"/>
<echo message="uploading ${filetoupload} to AmazonS3..."/>
<exec workingdir="${spring.basedir}" program="cmd.exe" verbose="true">
<arg value="/c powershell-invoker .\s3-nightly-upload.ps1 -srcFolderPath ${package.dir} -srcFilename ${filetoupload}" />
</exec>
<echo message="Deleting outdated files on AmazonS3..."/>
<exec workingdir="${spring.basedir}" program="cmd.exe" verbose="true">
<arg value="/c powershell-invoker .\s3-nightly-delete-old-files.ps1 -leaveLatest 10" />
</exec>
</target>
<target name="package-release-files" depends="set-package-configuration">
<echo message="Current package directory = ${current.package.dir}"/>
<copy todir="${current.package.dir}" verbose="${copy-verbose}">
<fileset>
<include name="${solution.file.2010}"/>
<include name="readme.txt"/>
<include name="changelog.txt"/>
<include name="license.txt"/>
<include name="Spring.build"/>
<include name="Spring.include"/>
<include name="common-project.include"/>
<include name="BreakingChanges.txt"/>
<!-- exclude VS.Net stuff -->
<exclude name="**/sdk-web/**"/>
<exclude name="**/*.suo"/>
<exclude name="**/*.user"/>
<exclude name="**/bin/**"/>
<exclude name="**/obj/**"/>
<exclude name="**/*.resharper"/>
<exclude name="**/*.resharper.user"/>
<exclude name="**/Thumbs.db"/>
</fileset>
</copy>
<!-- copy spring binaries -->
<call target="package-release-files-spring.binaries" />
<!-- copy user reference documentation -->
<mkdir dir="${current.package.dir}/doc/reference"/>
<copy todir="${current.package.dir}/doc/reference" verbose="${copy-verbose}">
<fileset basedir="doc/reference/target">
<include name="html/**/*"/>
<include name="pdf/**/*"/>
<include name="htmlhelp/**/*"/>
<exclude name="**/*.ppt*" />
</fileset>
</copy>
<!-- copy third-party libraries -->
<mkdir dir="${current.package.dir}/lib/Net"/>
<if test="${property::exists('build.allnamespaces') and not build.allnamespaces}">
<copy todir="${current.package.dir}/lib/Net" verbose="${copy-verbose}">
<fileset basedir="lib/Net">
<include name="**/DotNetMock*.dll"/>
<include name="**/log4net.dll"/>
<include name="**/Common.Logging.dll"/>
<include name="**/Common.Logging.Core.dll"/>
<include name="**/antlr.runtime.dll"/>
<include name="**/nunit.*.dll"/>
<include name="**/nunit.*.xml"/>
<include name="**/NUnitAsp.dll"/>
<include name="**/NUnitAspEx.dll"/>
<include name="**/Rhino.Mocks.dll"/>
<include if="${not net-4.0}" name="**/System.Web.Extensions.dll"/>
<include name="**/Apache.NMS.dll"/>
<include name="**/Apache.NMS.pdb"/>
<include name="**/Apache.NMS.ActiveMQ.dll"/>
<include name="**/Apache.NMS.ActiveMQ.pdb"/>
<include name="**/EULA.rtf"/>
<exclude name="**/TIBCO.EMS.ADMIN.dll"/>
<exclude name="**/TIBCO.EMS.dll"/>
</fileset>
</copy>
</if>
<mkdir dir="${current.package.dir}/lib/NHibernate3"/>
<if test="${property::exists('build.allnamespaces') and not build.allnamespaces}">
<copy todir="${current.package.dir}/lib/NHibernate3" verbose="${copy-verbose}">
<fileset basedir="lib/NHibernate3">
<include name="**/*.dll"/>
<include name="**/*.xml"/>
<include name="**/*.license.txt"/>
<exclude name="mono/**"/>
</fileset>
</copy>
</if>
<mkdir dir="${current.package.dir}/lib/NHibernate4"/>
<if test="${property::exists('build.allnamespaces') and not build.allnamespaces}">
<copy todir="${current.package.dir}/lib/NHibernate4" verbose="${copy-verbose}">
<fileset basedir="lib/NHibernate4">
<include name="**/*.dll"/>
<include name="**/*.xml"/>
<include name="**/*.license.txt"/>
<exclude name="mono/**"/>
</fileset>
</copy>
</if>
<if test="${property::exists('build.allnamespaces') and build.allnamespaces}">
<copy todir="${current.package.dir}/lib" verbose="${copy-verbose}">
<fileset basedir="lib">
<include name="**/*.dll"/>
<include name="**/*.xml"/>
</fileset>
</copy>
</if>
<!-- copy additional scripts -->
<mkdir dir="${current.package.dir}/build-support"/>
<copy todir="${current.package.dir}/build-support" verbose="${copy-verbose}">
<fileset basedir="build-support">
<include name="solutions.build.nant"/>
</fileset>
</copy>
<!-- copy third-party icons -->
<mkdir dir="${current.package.dir}/build-support/icons"/>
<copy todir="${current.package.dir}/build-support/icons" verbose="${copy-verbose}">
<fileset basedir="build-support/icons">
<include name="*.ico"/>
<include name="*.pal"/>
</fileset>
</copy>
<!-- copy additional convenience solution files -->
<mkdir dir="${current.package.dir}/build-support/solutions"/>
<copy todir="${current.package.dir}/build-support/solutions" verbose="${copy-verbose}">
<fileset basedir="build-support/solutions">
<include name="*.sln"/>
</fileset>
</copy>
<call target="package-tools"/>
<!-- copy schema and dtd -->
<mkdir dir="${current.package.dir}/doc/schema"/>
<copy todir="${current.package.dir}/doc/schema"
file="src/Spring/Spring.Core/Objects/Factory/Xml/spring-objects-1.3.xsd"/>
<copy todir="${current.package.dir}/doc/schema"
file="src/Spring/Spring.Core/Objects/Factory/Xml/spring-tool-1.1.xsd"/>
<copy todir="${current.package.dir}/doc/schema"
file="src/Spring/Spring.Core/Validation/Config/spring-validation-1.3.xsd"/>
<copy todir="${current.package.dir}/doc/schema"
file="src/Spring/Spring.Aop/Aop/Config/spring-aop-1.1.xsd"/>
<copy todir="${current.package.dir}/doc/schema"
file="src/Spring/Spring.Data/Data/Config/spring-database-1.3.xsd"/>
<copy todir="${current.package.dir}/doc/schema"
file="src/Spring/Spring.Data/Transaction/Config/spring-tx-1.1.xsd"/>
<copy todir="${current.package.dir}/doc/schema"
file="src/Spring/Spring.Services/Remoting/Config/spring-remoting-1.1.xsd"/>
<copy todir="${current.package.dir}/doc/schema"
file="src/Spring/Spring.Services/ServiceModel/Config/spring-wcf-1.3.xsd"/>
<copy todir="${current.package.dir}/doc/schema"
file="src/Spring/Spring.Messaging.Nms/Messaging/Nms/Config/spring-nms-1.3.xsd"/>
<copy todir="${current.package.dir}/doc/schema"
file="src/Spring/Spring.Messaging.Ems/Messaging/Ems/Config/spring-ems-1.3.xsd"/>
<copy todir="${current.package.dir}/doc/schema"
file="src/Spring/Spring.Template.Velocity/Template/Velocity/Config/spring-nvelocity-1.3.xsd"/>
<copy todir="${current.package.dir}/doc/schema"
file="build-support/install-schema.build"/>
<mkdir dir="${current.package.dir}/bin/net/3.5/debug"/>
<mkdir dir="${current.package.dir}/bin/net/3.5/release"/>
<copy todir="${current.package.dir}/bin/net/3.5/debug"
file="build-support/readme-net-3.5.txt"/>
<copy todir="${current.package.dir}/bin/net/3.5/release"
file="build-support/readme-net-3.5.txt"/>
<echo message="copying source code for release..."/>
<!-- copy source code -->
<copy todir="${current.package.dir}" verbose="${copy-verbose}">
<fileset refid="src.to.copy"/>
</copy>
<!-- copy examples -->
<copy todir="${current.package.dir}/examples" verbose="${copy-verbose}">
<fileset basedir="examples">
<include name="**/*.refresh"/>
<include name="**/*.refresh"/>
</fileset>
</copy>
<!-- copy templates -->
<copy todir="${current.package.dir}/dev-support" verbose="${copy-verbose}">
<fileset basedir="dev-support">
<include name="resharper/**"/>
<include name="vs.net-2008/**"/>
<exclude name="**/App.AdoQuickStart/**" />
</fileset>
</copy>
</target>
<!-- copy spring binaries from build dir to package bin dir -->
<target name="package-release-files-spring.binaries">
<!-- copy built assemblies -->
<mkdir dir="${current.package.dir}/bin/net"/>
<if test="${property::exists('build.allnamespaces') and not build.allnamespaces}">
<copy todir="${current.package.dir}/bin/net" verbose="${copy-verbose}">
<fileset basedir="./build/net">
<include name="*/*/Common.Logging.dll"/>
<include name="*/*/Common.Logging.Core.dll"/>
<include name="*/*/Spring.Core.dll"/>
<include name="*/*/Spring.Core.xml"/>
<include name="*/*/Spring.Core.pdb"/>
<include name="*/*/Spring.Aop.dll"/>
<include name="*/*/Spring.Aop.xml"/>
<include name="*/*/Spring.Aop.pdb"/>
<include name="*/*/Spring.Data.dll"/>
<include name="*/*/Spring.Data.xml"/>
<include name="*/*/Spring.Data.pdb"/>
<include name="*/*/Spring.Data.NHibernate*.dll"/>
<include name="*/*/Spring.Data.NHibernate*.xml"/>
<include name="*/*/Spring.Data.NHibernate*.pdb"/>
<include name="*/*/Spring.Web.dll"/>
<include name="*/*/Spring.Web.xml"/>
<include name="*/*/Spring.Web.pdb"/>
<include name="*/*/Spring.Web.Mvc3.dll"/>
<include name="*/*/Spring.Web.Mvc3.xml"/>
<include name="*/*/Spring.Web.Mvc3.pdb"/>
<include name="*/*/Spring.Web.Mvc4.dll"/>
<include name="*/*/Spring.Web.Mvc4.xml"/>
<include name="*/*/Spring.Web.Mvc4.pdb"/>
<include name="*/*/Spring.Web.Mvc5.dll"/>
<include name="*/*/Spring.Web.Mvc5.xml"/>
<include name="*/*/Spring.Web.Mvc5.pdb"/>
<include name="*/*/Spring.Web.Extensions.dll"/>
<include name="*/*/Spring.Web.Extensions.xml"/>
<include name="*/*/Spring.Web.Extensions.pdb"/>
<include name="*/*/Spring.Services.dll"/>
<include name="*/*/Spring.Services.xml"/>
<include name="*/*/Spring.Services.pdb"/>
<include name="*/*/Spring.Testing.NUnit.dll"/>
<include name="*/*/Spring.Testing.NUnit.xml"/>
<include name="*/*/Spring.Testing.NUnit.pdb"/>
<include name="*/*/Spring.Testing.Microsoft.dll"/>
<include name="*/*/Spring.Testing.Microsoft.xml"/>
<include name="*/*/Spring.Testing.Microsoft.pdb"/>
<include name="*/*/Spring.Messaging.Ems.dll"/>
<include name="*/*/Spring.Messaging.Ems.xml"/>
<include name="*/*/Spring.Messaging.Ems.pdb"/>
<include name="*/*/Spring.Messaging.Nms.dll"/>
<include name="*/*/Spring.Messaging.Nms.xml"/>
<include name="*/*/Spring.Messaging.Nms.pdb"/>
<include name="*/*/Spring.Messaging.dll"/>
<include name="*/*/Spring.Messaging.xml"/>
<include name="*/*/Spring.Messaging.pdb"/>
<include name="*/*/Spring.Scheduling.Quartz2.dll"/>
<include name="*/*/Spring.Scheduling.Quartz2.xml"/>
<include name="*/*/Spring.Scheduling.Quartz2.pdb"/>
<include name="*/*/Spring.Template.Velocity.dll"/>
<include name="*/*/Spring.Template.Velocity.xml"/>
<include name="*/*/Spring.Template.Velocity.pdb"/>
<include name="*/*/Spring.Web.Conversation.NHibernate3.dll"/>
<include name="*/*/Spring.Web.Conversation.NHibernate3.xml"/>
<include name="*/*/Spring.Web.Conversation.NHibernate3.pdb"/>
<include name="*/*/Spring.Web.Conversation.NHibernate4.dll"/>
<include name="*/*/Spring.Web.Conversation.NHibernate4.xml"/>
<include name="*/*/Spring.Web.Conversation.NHibernate4.pdb"/>
</fileset>
</copy>
<mkdir dir="${current.package.dir}/bin/net/3.5"/>
<copy todir="${current.package.dir}/bin/net/3.5" verbose="${copy-verbose}">
<fileset basedir="./build/net/3.5">
<include name="*/Spring.Services.dll"/>
<include name="*/Spring.Services.xml"/>
<include name="*/Spring.Services.pdb"/>
<include name="*/*/Spring.Scheduling.Quartz2.dll"/>
<include name="*/*/Spring.Scheduling.Quartz2.xml"/>
<include name="*/*/Spring.Scheduling.Quartz2.pdb"/>
<include name="*/Spring.Web.Extensions.dll"/>
<include name="*/Spring.Web.Extensions.xml"/>
<include name="*/Spring.Web.Extensions.pdb"/>
<include name="*/Spring.Data.NHibernate*.dll"/>
<include name="*/Spring.Data.NHibernate*.xml"/>
<include name="*/Spring.Data.NHibernate*.pdb"/>
</fileset>
</copy>
</if>
<if test="${property::exists('build.allnamespaces') and build.allnamespaces}">
<copy todir="${current.package.dir}/bin/net" verbose="${copy-verbose}">
<fileset basedir="./build/net">
<include name="**/Spring.Services.*.exe"/>
<include name="**/Spring.*.dll"/>
<include name="**/Spring.*.xml"/>
<include name="**/Spring.*.pdb"/>
<include name="**/log4net.dll"/>
<include name="**/log4net.xml"/>
<include name="**/log4net.pdb"/>
<include name="**/Common.Logging.dll"/>
<include name="**/Common.Logging.xml"/>
<include name="**/Common.Logging.Core.dll"/>
<include name="**/Common.Logging.Core.xml"/>
<exclude name="**/examples/**"/>
<exclude name="**/results/**"/>
<exclude name="**/Spring.*.Tests.dll"/>
<exclude name="**/Spring.*.Tests.xml"/>
<exclude name="**/Spring.*.Tests.pdb"/>
<exclude name="**/Spring.Examples.*"/>
</fileset>
</copy>
</if>
<delete>
<fileset basedir="${current.package.dir}/bin/net">
<include name="**/es/**"/>
<include name="**/PT-BR/**"/>
<include name="**/pt-BR/**"/>
<include name="**/sr/**"/>
<include name="**/sr-SP-Cyrl/**"/>
<include name="**/sr-Cyrl-CS/**"/>
<include name="**/mpollack*/**"/>
<include name="**/results/**"/>
<include name="**/release/Spring/**"/>
<include name="**/debug/Spring/**"/>
<include name="**/debug/bin/**"/>
</fileset>
</delete>
</target>
<target name="package-sdkdocs" depends="set-package-configuration">
<if test="${property::exists('docx.generated')}">
<echo message="copying SDK docs..."/>
<call target="copy-sdkdoc-spring"/>
</if>
</target>
<!-- Copy over the SDK documentation generated by Document X -->
<target name="copy-sdkdoc-spring" depends="set-package-configuration">
<call target="set-release-build-configuration"/>
<delete dir="${current.package.dir}/doc/sdk/1.1/htmlhelp"/>
<delete dir="${current.package.dir}/doc/sdk/1.1/vsnet2003"/>
<delete dir="${current.package.dir}/doc/sdk/2.0/htmlhelp"/>
<delete dir="${current.package.dir}/doc/sdk/2.0/vsnet2005"/>
<mkdir dir="${current.package.dir}/doc/sdk/1.1/htmlhelp"/>
<mkdir dir="${current.package.dir}/doc/sdk/1.1/vsnet2003"/>
<mkdir dir="${current.package.dir}/doc/sdk/2.0/htmlhelp"/>
<mkdir dir="${current.package.dir}/doc/sdk/2.0/vsnet2005"/>
<property name="sdk.src.dir" value="l:/release/Spring.NET" overwrite="false"/>
<!-- Copy htmlhelp 1.0 files for 2.0 assemblies -->
<copy todir="${current.package.dir}/doc/sdk/2.0/htmlhelp"
file="${sdk.src.dir}/doc/sdk/Spring-1.3/net-2.0/htmlhelp1and2/Spring.NET.chm"/>
<!-- Copy generated htmlhelp 2.x files, install scripts, -->
<!-- and install utility for .NET 2.0 assemblies -->
<copy todir="${current.package.dir}/doc/sdk/2.0/vsnet2005" verbose="${copy-verbose}">
<fileset basedir="${sdk.src.dir}/doc/sdk/Spring-1.3/net-2.0/htmlhelp1and2">
<include name="COL_*.*"/>
</fileset>
</copy>
<copy todir="${current.package.dir}/doc/sdk/2.0/vsnet2005"
file="${sdk.src.dir}/doc/sdk/Spring-1.3/net-2.0/htmlhelp1and2/Spring.NET.hxs"/>
<copy todir="${current.package.dir}/doc/sdk/2.0/vsnet2005"
file="doc/InnovaHxReg.exe"/>
<copy todir="${current.package.dir}/doc/sdk/2.0/vsnet2005"
file="doc\docx\Spring-1.3\net-2.0\RegisterHelp2.bat"/>
<copy todir="${current.package.dir}/doc/sdk/2.0/vsnet2005"
file="doc\docx\Spring-1.3\net-2.0\UnRegisterHelp2.bat"/>
</target>
<target name="set-user-overrides" unless="${target::has-executed('set-user-overrides')}">
<!--
Per-user custom properties; we load any custom properties and / or
property overrides here...
<project name="MyCustomSpring.NETProperties">
<property name="build-testing-microsoft" value="true"/>
</project>
These custom properties are loaded from a single file named
'Spring.NET.xml' that must be placed in the ${sys.os.folder.applicationdata}
directory. NAnt expands this property to the 'home' folder of the
currently logged in user (on WinX boxes); for example...
C:\Documents and Settings\Rick Evans\Application Data
-->
<!-- has this user specified any custom properties / property overrides? -->
<property name="user.overrides.file" value="${sys.os.folder.applicationdata}\${project.name}.xml"/>
<if test="${file::exists(user.overrides.file)}">
<property name="user.overrides.present" value="true"/>
</if>
<if test="${not file::exists(user.overrides.file)}">
<property name="user.overrides.present" value="false"/>
</if>
<!-- if so, then include all of those custom properties / property overrides -->
<if test="${user.overrides.present}">
<echo message="Using overrides properties file '${user.overrides.file}'."/>
<include buildfile="${user.overrides.file}"/>
</if>
</target>
<target name="set-build-namespaces-all">
<property name="build.allnamespaces" value="true"/>
<property name="test.integration.data" value="false" overwrite="false" />
<property name="test.integration.ems" value="false" overwrite="false" />
<property name="test.integration.nms" value="false" overwrite="false" />
<property name="build-aop" value="true" />
<property name="build-data" value="true" />
<property name="build-conversation" value="true" />
<property name="build-services" value="true" />
<property name="build-testing-nunit" value="true" />
<property name="build-testing-microsoft" value="false" />
<property name="build-testing-microsoft" value="${property::exists('mstest.exe')}" />
<property name="run-testing-microsoft" value="${not property::exists('skipmstestrun')}" />
<property name="build-web" value="true" />
<property name="build-nms" value="true" />
<property name="build-ems" value="${file::exists('lib/net/2.0/tibco.ems.dll')}" />
<property name="build-quartz" value="true" />
<property name="build-msmq" value="true" />
<property name="build-velocity" value="true" />
<property name="solution.file" value="Spring.Net.sln"/>
<fileset id="src.to.copy">
<include name="src/**"/>
<include name="examples/**"/>
<include name="test/**"/>
<!-- exclude VS.Net stuff -->
<exclude name="**/*.suo"/>
<exclude name="**/*.user"/>
<exclude name="**/bin/**"/>
<exclude name="**/obj/**"/>
<exclude name="**/_ReSharper*/**"/>
<exclude name="**/build/**"/>
<exclude name="**/sdk-web/**"/>
<exclude name="**/POC/**"/>
<exclude name="**/sdk/net/1.1/${project.name}-SDK-HTML.zip"/>
<exclude name="examples/Spring/SpringAir/src/SpringAir.Web.2005.References/*.dll"/>
<exclude name="examples/Spring/SpringAir/src/SpringAir.Web.2005.References/*.pdb"/>
<exclude name="examples/Spring/SpringAir/src/SpringAir.Web.2005.References/*.xml"/>
<exclude name="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.References/*.dll"/>
<exclude name="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.References/*.pdb"/>
<exclude name="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.References/*.xml"/>
</fileset>
</target>
<target name="set-build-namespaces-release">
<property name="test.integration.data" value="false" overwrite="false" />
<property name="test.integration.ems" value="false" overwrite="false" />
<property name="test.integration.nms" value="false" overwrite="false" />
<property name="build-aop" value="true"/>
<property name="build-data" value="true"/>
<property name="build-conversation" value="true" />
<property name="build-services" value="true"/>
<property name="build-testing-nunit" value="true"/>
<property name="build-testing-microsoft" value="false" />
<property name="build-testing-microsoft" value="${property::exists('mstest.exe')}" />
<property name="run-testing-microsoft" value="${not property::exists('skipmstestrun')}" />
<property name="build-web" value="true"/>
<property name="build-examples" value="true"/>
<property name="build-nms" value="true" />
<property name="build-ems" value="${file::exists('lib/net/2.0/tibco.ems.dll')}" />
<property name="build-quartz" value="true" />
<property name="build-msmq" value="true" />
<property name="build-velocity" value="true" />
<property name="solution.file.2010" value="Spring.Net.2010.sln"/>
<fileset id="src.to.copy">
<include name="src/Spring/Spring.Core/**"/>
<include name="src/Spring/Spring.Aop/**"/>
<include name="src/Spring/Spring.Web/**"/>
<include name="src/Spring/Spring.Web.Mvc3/**"/>
<include name="src/Spring/Spring.Web.Mvc4/**"/>
<include name="src/Spring/Spring.Web.Mvc5/**"/>
<include name="src/Spring/Spring.Web.Extensions/**"/>
<include name="src/Spring/Spring.Services/**"/>
<include name="src/Spring/Spring.Data/**"/>
<include name="src/Spring/Spring.Data.NHibernate3/**"/>
<include name="src/Spring/Spring.Data.NHibernate4/**"/>
<include name="src/Spring/Spring.Messaging/**"/>
<include name="src/Spring/Spring.Messaging.Nms/**"/>
<include name="src/Spring/Spring.Messaging.Ems/**"/>
<include name="src/Spring/Spring.Scheduling.Quartz2/**"/>
<include name="src/Spring/Spring.Template.Velocity/**"/>
<include name="src/Spring/Spring.Testing.NUnit/**"/>
<include name="src/Spring/Spring.Testing.Microsoft/**"/>
<include name="src/Spring/CommonAssemblyInfo.cs"/>
<include name="src/Spring/Spring.Web.Conversation.NHibernate3/**"/>
<include name="src/Spring/Spring.Web.Conversation.NHibernate4/**"/>
<include name="test/Spring/Spring.Core.Tests/**"/>
<include name="test/Spring/Spring.Aop.Tests/**"/>
<include name="test/Spring/Spring.Web.Tests/**"/>
<include name="test/Spring/Spring.Web.Mvc3.Tests/**"/>
<include name="test/Spring/Spring.Web.Mvc4.Tests/**"/>
<include name="test/Spring/Spring.Web.Mvc5.Tests/**"/>
<include name="test/Spring/Spring.Services.Tests/**"/>
<include name="test/Spring/Spring.Data.Tests/**"/>
<include name="test/Spring/Spring.Data.Integration.Tests/**"/>
<include name="test/Spring/Spring.Data.NHibernate3.Tests/**"/>
<include name="test/Spring/Spring.Data.NHibernate3.Integration.Tests/**"/>
<include name="test/Spring/Spring.Data.NHibernate4.Tests/**"/>
<include name="test/Spring/Spring.Data.NHibernate4.Integration.Tests/**"/>
<include name="test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/**"/>
<include name="test/Spring/Spring.Messaging.Tests/**"/>
<include name="test/Spring/Spring.Messaging.Nms.Tests/**"/>
<include name="test/Spring/Spring.Messaging.Nms.Integration.Tests/**"/>
<include name="test/Spring/Spring.Messaging.Ems.Tests/**"/>
<include name="test/Spring/Spring.Scheduling.Quartz2.Tests/**"/>
<include name="test/Spring/Spring.Template.Velocity.Tests/**"/>
<include name="test/Spring/Spring.Testing.NUnit.Tests/**"/>
<include name="test/Spring/Spring.Testing.Microsoft.Tests/**"/>
<include name="test/Spring/CommonAssemblyInfo.cs"/>
<include name="test/Spring/Spring.Web.Conversation.NHibernate3.Tests/**"/>
<include name="test/Spring/Spring.Web.Conversation.NHibernate4.Tests/**"/>
<include name="examples/Spring/Spring.Examples.build"/>
<include name="examples/Spring/Spring.AopQuickStart/**"/>
<include name="examples/Spring/Spring.DataQuickStart/**"/>
<include name="examples/Spring/Spring.Data.NHibernate.Northwind/**"/>
<include name="examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web/Bin/*.refresh"/>
<include name="examples/Spring/Spring.TxQuickStart/**"/>
<include name="examples/Spring/Spring.IoCQuickStart.AppContext/**"/>
<include name="examples/Spring/Spring.IoCQuickStart.EventRegistry/**"/>
<include name="examples/Spring/Spring.IoCQuickStart.MovieFinder/**"/>
<include name="examples/Spring/Spring.CachingQuickStart/**"/>
<include name="examples/Spring/Spring.Calculator/**"/>
<include name="examples/Spring/Spring.Calculator/src/Spring.Calculator.Web.2005/Bin/*.refresh"/>
<include name="examples/Spring/Spring.WebQuickStart/**"/>
<include name="examples/Spring/Spring.Mvc3QuickStart/**"/>
<include name="examples/Spring/Spring.Mvc4QuickStart/**"/>
<include name="examples/Spring/Spring.Mvc5QuickStart/**"/>
<include name="examples/Spring/Spring.Web.Extensions.Example/**"/>
<include name="examples/Spring/Spring.Web.Extensions.Example/src/Spring.Web.Extensions.Example.2005/Bin/*.refresh"/>
<include name="examples/Spring/SpringAir/**"/>
<include name="examples/SpringAir/src/SpringAir.Web.2005/bin/*.refresh"/>
<include name="examples/Spring/Spring.Scheduling.Quartz.Example/**"/>
<include name="examples/Spring/Spring.NmsQuickStart/**"/>
<include name="examples/Spring/Spring.EmsQuickStart/**"/>
<include name="examples/Spring/Spring.MsmqQuickStart/**"/>
<include name="examples/Spring/Spring.WcfQuickStart/**"/>
<include name="examples/Spring/Spring.Scheduling.Quartz.Example/**"/>
<exclude name="examples/Spring/Spring.Data.NHibernate.Northwind/Debug*.sln"/>
<exclude name="examples/Spring/Spring.Data.NHibernate.Northwind/Spring.Northwind.sln"/>
<!-- exclude VS.Net stuff -->
<exclude name="**/sdk-web/**"/>
<exclude name="**/*.sln.cache"/>
<exclude name="**/*.suo"/>
<exclude name="**/*.user"/>
<exclude name="**/bin/**"/>
<exclude name="**/obj/**"/>
<exclude name="**/_ReSharper*/**"/>
<exclude name="**/build/**"/>
<exclude name="**/*.resharper"/>
</fileset>
</target>
<!-- build all Visual Studio Solutions -->
<target name="build-solutions" description="Build the solutions">
<!-- some examples are linked against the "bin" dir of the distribution so copy them from 'build' to 'bin' -->
<delete dir="${spring.basedir}/bin" />
<property name="current.package.dir" value="${spring.basedir}" />
<call target="package-release-files-spring.binaries" />
<!-- rebuild all solutions -->
<nant buildfile="build-support/solutions.build.nant">
<properties>
<property name="root.dir" value="${spring.basedir}" />
</properties>
</nant>
<!-- be nice and cleanup after building -->
<nant buildfile="build-support/solutions.build.nant" target="Clean">
<properties>
<property name="root.dir" value="${spring.basedir}" />
</properties>
</nant>
</target>
<target name="check-nuget-package-dir">
<fail message="The NuGet package directory has not been specified."
if="${not property::exists('nuget.package.dir')}"/>
<!-- <mkdir dir="${nuget.package.dir}"/> -->
</target>
<target name="clean-nuget-package-dir" depends="check-nuget-package-dir" description="Cleans the NuGet package directory">
<echo message="Cleaning the ${nuget.package.dir} NuGet package directory."/>
<delete failonerror="false" if="${directory::exists(nuget.package.dir)}">
<fileset basedir="${nuget.package.dir}">
<include name="*.nupkg"/>
</fileset>
</delete>
<mkdir dir="${nuget.package.dir}" if="${directory::exists(nuget.package.dir)}"/>
</target>
<target name="set-nuget-package-version" >
<!-- assume version of nuget package matches version of assemblies contained within it -->
<property name="nuget.package.version" value="${package.version}" />
<!-- if suffix is passed in, use it -->
<property name="nuget.package.version" value="${package.version + '-' + nuget.version.suffix}" if="${property::exists('nuget.version.suffix')}" />
</target>
<target name="package-nuget" depends="set-nuget-package-version,update-nuspec-metadata">
<property name="nuget.package.dir" value="${spring.basedir}\nuget-packages" />
<call target="clean-nuget-package-dir" />
<call target="check-package-version" />
<foreach item="File" property="filename">
<in>
<items basedir="${spring.basedir}/src/spring">
<include name="**/*.nuspec" />
</items>
</in>
<do>
<echo message="Generating NuGet Package from nuspec file: ${filename}" />
<exec program="${tool.dir}\NuGet\NuGet.exe" workingdir="${spring.basedir}" verbose="true">
<arg value="pack" />
<arg value="${filename}" />
<arg value="-Version" />
<arg value="${nuget.package.version}" />
<arg value="-basepath" />
<arg value="${spring.basedir}" />
<arg value="-OutputDirectory" />
<arg value="${nuget.package.dir}" />
</exec>
</do>
</foreach>
</target>
<target name="update-nuspec-metadata" depends="set-nuget-package-version">
<!--
INFO: this task assumes that all SPRNET components are versioned coincident with each other and
updates all version dependencies betw. SPRNET components at once
-->
<foreach item="File" property="filename">
<in>
<items basedir="${spring.basedir}/src/spring">
<include name="**/*.nuspec" />
<!--
NOTE: must exclude Spring.Core.nuspec b/c it has no Spring.* deps and so the XPATH expr. won't find a match in that case
and so would fail the XMLPOKE operation otherwise
-->
<exclude name="**/Spring.Core.nuspec" />
</items>
</in>
<do>
<echo message="Processing nuspec file: ${filename}" />
<xmlpoke file="${filename}" xpath="/n:package/n:metadata/n:dependencies/n:dependency[starts-with(@id, 'Spring.')]/@version" value="${nuget.package.version}">
<namespaces>
<namespace prefix="n" uri="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" />
</namespaces>
</xmlpoke>
</do>
</foreach>
</target>
</project>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化