mirror of
https://github.com/apache/ant.git
synced 2025-05-18 14:04:48 +00:00
126 lines
3.7 KiB
HTML
126 lines
3.7 KiB
HTML
|
<html>
|
||
|
<head>
|
||
|
<title> .Net classes for Ant
|
||
|
</title>
|
||
|
<body>
|
||
|
<h1>.Net classes for Ant</h1>
|
||
|
|
||
|
|
||
|
Vision: make ant the definative build tool for .net projects, just
|
||
|
as it is becoming for java projects
|
||
|
<p>
|
||
|
|
||
|
<h2>Detail. </h2>
|
||
|
|
||
|
The emergent policy in big java projects is 'IDE for code and debug';
|
||
|
Ant for builds, test and deployment. While IDEs are great for an
|
||
|
individual development task, Ant not only rebuilds everything insanely
|
||
|
fast, it has great support for modern deployment tasks -ftp upload,
|
||
|
EJB servers, SQL commands, all can be done from a relatively simple
|
||
|
XML declaration of what you want done. Also in a large project
|
||
|
(especially open source) there is no means of dictating which IDE to use.
|
||
|
Ant gives IDE independence, cross platform portability and ease of
|
||
|
extensibility.
|
||
|
|
||
|
<p>
|
||
|
|
||
|
Projects using .net should be able to use the same tool. This will
|
||
|
avoid everyone being dependent on Visual Studio.net (if they have it)
|
||
|
supplemented with makefiles and batch files. Anyone doing mixed java/dotnet
|
||
|
development will be particulary grateful, as they can have a unified build
|
||
|
process.
|
||
|
|
||
|
<p>
|
||
|
|
||
|
If at sometime in the future bits of .net do appear on different platforms
|
||
|
then ant based build files will migrate -once the ant tasks have been
|
||
|
migrated and any hard codings of DOS-descendant file system conventions
|
||
|
removed from the build.xml files
|
||
|
|
||
|
<h2>Key .net Tasks</h2>
|
||
|
|
||
|
<ol>
|
||
|
<li>csc - csharp compiler - *.csc -> output
|
||
|
<li>ilasm - IL assembler - *.il ->.exe or .dll
|
||
|
<li>ResX - ResXToResources.exe .resx -> .resources
|
||
|
<li>al - assembly linker (.dll) ->
|
||
|
<li>Signcode - .exe + keys -> .exe'
|
||
|
<li>Resgen - .properties -> .resources
|
||
|
<li>Type Library Exporter (TlbExp.exe- .dll -> .tlb
|
||
|
<li>TlbImp.exe Type Library Importer
|
||
|
<li>RegAsm.exe Assembly Registration Tool .dll -> .reg | registration
|
||
|
<li>WebServiceUtil -SOAP proxy import, SDL generation tool
|
||
|
</ol>
|
||
|
|
||
|
<h2>Ant Wrapper for net tasks</h2>
|
||
|
|
||
|
Rarely used .net command line tools can be invoked manually. The key tasks
|
||
|
to address are the common steps in a build process and those which benefit
|
||
|
from the file pattern matching function.
|
||
|
|
||
|
<p>
|
||
|
|
||
|
The esoteric tasks can then supported on demand by those who need them.
|
||
|
The initial .net tasks should provide a foundation for that demand creation
|
||
|
to be simple.
|
||
|
|
||
|
<h2>Plan</h2>
|
||
|
|
||
|
<ol>
|
||
|
|
||
|
<li>code up C sharp task and distribute for feedback & identify possible
|
||
|
aid
|
||
|
<li>Add the next task I need (whatever that is)
|
||
|
<li>Refactor to produce a base class for .net tasks
|
||
|
<li>Leave it other people write all the other tasks
|
||
|
</ol>
|
||
|
|
||
|
<h2>Risks</h2>
|
||
|
<ul>
|
||
|
<li>
|
||
|
The .net SDK is unstable; the next builds will change the commands, arguments
|
||
|
and behaviours. Probability: 100%. Impact: 2 days.
|
||
|
<li>Portable tasks turn out to be harder than envisaged
|
||
|
(=reworking if/when non Win32 .net build tools appear)
|
||
|
|
||
|
</ul>
|
||
|
|
||
|
<hr>
|
||
|
<h2>Using Ant in .net projects</h2>
|
||
|
|
||
|
<h3>
|
||
|
Setup</h3>
|
||
|
|
||
|
To use the net tasks one needs
|
||
|
<ul>
|
||
|
|
||
|
<li> A win2K box (or any other platform which supports the .net build tools)
|
||
|
|
||
|
<li> JavaVM - Java1.1 or later
|
||
|
|
||
|
<li> Ant downloaded and the environment and path variables set up so
|
||
|
that typing 'ant' invokes ant via a batch file.
|
||
|
|
||
|
<li> An XML parser for ant. The usual distributions include an appropriate
|
||
|
version parser.jar and jaxp.jar.
|
||
|
|
||
|
<li> the .net tasks archive (dotnettasks.jar) included in the
|
||
|
ant\lib directory
|
||
|
|
||
|
<li> The .net sdk installed with the binaries on the path. (Test: type CSC)
|
||
|
|
||
|
<li> A build.xml file to describe the build process
|
||
|
</ul>
|
||
|
|
||
|
An example build.xml file is included in the test directory.
|
||
|
|
||
|
<h2>Task: CSC</h2>
|
||
|
|
||
|
This task compiles CSharp source into executables or modules.
|
||
|
Consult the javadoc file for parameter details.
|
||
|
<h2> Task: ilasm <h2>
|
||
|
Task to assemble .il files.
|
||
|
Consult the javadoc file for parameter details.
|
||
|
|
||
|
</body>
|
||
|
</html>
|