268 lines
11 KiB
HTML
268 lines
11 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|||
|
<!-- Documenting T:NAnt.DotNet.Tasks.ScriptTask-->
|
|||
|
<head>
|
|||
|
<meta http-equiv="Content-Language" content="en-ca" />
|
|||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|||
|
<link rel="stylesheet" type="text/css" href="../style.css" />
|
|||
|
<title><script> Task</title>
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
|
|||
|
<tr>
|
|||
|
<td class="NavBar-Cell">
|
|||
|
<a href="http://nant.sourceforge.net">
|
|||
|
<b>NAnt</b>
|
|||
|
</a>
|
|||
|
<img alt="->" src="../images/arrow.gif" />
|
|||
|
<a href="../index.html">Help</a>
|
|||
|
<img alt="->" src="../images/arrow.gif" />
|
|||
|
<a href="../tasks/index.html">Task Reference</a>
|
|||
|
<img alt="->" src="../images/arrow.gif" /> <script></td>
|
|||
|
<td class="NavBar-Cell" align="right">
|
|||
|
v0.91</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<h1><script></h1>
|
|||
|
<p> Executes the code contained within the task. </p>
|
|||
|
<h5 xmlns="">Code</h5>
|
|||
|
<p> The <a href="../tasks/script.html"><script></a> task must contain a single <code>code</code> element, which in turn contains the script code. </p>
|
|||
|
<p> This code can include extensions such as functions, or tasks. Once the script task has executed those extensions will be available for use in the buildfile. </p>
|
|||
|
<p> If no extensions have been defined, a static entry point named <code>ScriptMain</code> - which must have a single <a href="../../sdk/NAnt.Core.Project.html">Project</a> argument - is required. </p>
|
|||
|
<h5 xmlns="">Namespaces</h5>
|
|||
|
<p> The following namespaces are imported by default: </p>
|
|||
|
<ul style="list-style-type: disc;">
|
|||
|
<li>System</li>
|
|||
|
<li>System.Collections</li>
|
|||
|
<li>System.IO</li>
|
|||
|
<li>System.Text</li>
|
|||
|
<li>NAnt.Core</li>
|
|||
|
<li>NAnt.Core.Attributes</li>
|
|||
|
</ul>
|
|||
|
<h5 xmlns="">Assembly References</h5>
|
|||
|
<p> The assembly references that are specified will be used to compile the script, and will be loaded into the NAnt appdomain. </p>
|
|||
|
<p> By default, only the <code>NAnt.Core</code> and <code>mscorlib</code> assemblies are referenced. </p>
|
|||
|
<h3>Parameters</h3>
|
|||
|
<div class="table">
|
|||
|
<table>
|
|||
|
<tr>
|
|||
|
<th>Attribute</th>
|
|||
|
<th style="text-align: center;">Type</th>
|
|||
|
<th>Description</th>
|
|||
|
<th style="text-align: center;">Required</th>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td valign="top" class="required">language</td>
|
|||
|
<td style="text-align: center;">string</td>
|
|||
|
<td> The language of the script block. Possible values are "VB", "vb", "VISUALBASIC", "C#", "c#", "CSHARP". "JS", "js", "JSCRIPT" "VJS", "vjs", "JSHARP" or a fully-qualified name for a class implementing <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemCodeDomCompilerCodeDomProviderClassTopic.asp">CodeDomProvider</a>. </td>
|
|||
|
<td style="text-align: center;">True</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td valign="top">mainclass</td>
|
|||
|
<td style="text-align: center;">string</td>
|
|||
|
<td> The name of the main class containing the static <code>ScriptMain</code> entry point. </td>
|
|||
|
<td style="text-align: center;">False</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td valign="top">prefix</td>
|
|||
|
<td style="text-align: center;">string</td>
|
|||
|
<td> The namespace prefix for any custom functions defined in the script. If ommitted the prefix will default to 'script' </td>
|
|||
|
<td style="text-align: center;">False</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td valign="top">failonerror</td>
|
|||
|
<td style="text-align: center;">bool</td>
|
|||
|
<td> Determines if task failure stops the build, or is just reported. The default is <b>true</b>. </td>
|
|||
|
<td style="text-align: center;">False</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td valign="top">if</td>
|
|||
|
<td style="text-align: center;">bool</td>
|
|||
|
<td> If <b>true</b> then the task will be executed; otherwise, skipped. The default is <b>true</b>. </td>
|
|||
|
<td style="text-align: center;">False</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td valign="top">unless</td>
|
|||
|
<td style="text-align: center;">bool</td>
|
|||
|
<td> Opposite of <code>if</code>. If <b>false</b> then the task will be executed; otherwise, skipped. The default is <b>false</b>. </td>
|
|||
|
<td style="text-align: center;">False</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td valign="top">verbose</td>
|
|||
|
<td style="text-align: center;">bool</td>
|
|||
|
<td> Determines whether the task should report detailed build log messages. The default is <b>false</b>. </td>
|
|||
|
<td style="text-align: center;">False</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<h3>Nested Elements:</h3>
|
|||
|
<!--Element-->
|
|||
|
<h4>
|
|||
|
<a id="references">
|
|||
|
</a>
|
|||
|
<<a href="../types/assemblyfileset.html">references</a>>
|
|||
|
</h4>
|
|||
|
<div class="nested-element"> Any required references. <p /></div>
|
|||
|
<h4>
|
|||
|
<a id="references">
|
|||
|
</a>
|
|||
|
</<a href="../types/assemblyfileset.html">references</a>>
|
|||
|
</h4>
|
|||
|
<!--Element-->
|
|||
|
<h4>
|
|||
|
<a id="imports">
|
|||
|
</a>
|
|||
|
<<a href="../types/namespaceimports.html">imports</a>>
|
|||
|
</h4>
|
|||
|
<div class="nested-element"> The namespaces to import. <p /></div>
|
|||
|
<h4>
|
|||
|
<a id="imports">
|
|||
|
</a>
|
|||
|
</<a href="../types/namespaceimports.html">imports</a>>
|
|||
|
</h4>
|
|||
|
<!--Element-->
|
|||
|
<h4>
|
|||
|
<a id="code">
|
|||
|
</a>
|
|||
|
<code>
|
|||
|
</h4>
|
|||
|
<div class="nested-element"> The code to execute. <p> Represents an element of which the XML is processed by its parent task or type. </p><p /></div>
|
|||
|
<h4>
|
|||
|
<a id="code">
|
|||
|
</a>
|
|||
|
</code>
|
|||
|
</h4>
|
|||
|
<h3>Examples</h3>
|
|||
|
<ul class="examples">
|
|||
|
<li>
|
|||
|
<p>Run C# code that writes a message to the build log.</p>
|
|||
|
<pre class="code"> <script language="C#">
|
|||
|
<code>
|
|||
|
<![CDATA[
|
|||
|
public static void ScriptMain(Project project) {
|
|||
|
project.Log(Level.Info, "Hello World from a script task using C#");
|
|||
|
}
|
|||
|
]]>
|
|||
|
</code>
|
|||
|
</script>
|
|||
|
</pre>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>Define a custom function and call it using C#.</p>
|
|||
|
<pre class="code"> <script language="C#" prefix="test" >
|
|||
|
<code>
|
|||
|
<![CDATA[
|
|||
|
[Function("test-func")]
|
|||
|
public static string Testfunc( ) {
|
|||
|
return "some result !!!!!!!!";
|
|||
|
}
|
|||
|
]]>
|
|||
|
</code>
|
|||
|
</script>
|
|||
|
<echo message='${test::test-func()}'/>
|
|||
|
</pre>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>Use a custom namespace in C# to create a database</p>
|
|||
|
<pre class="code"> <script language="C#" >
|
|||
|
<references>
|
|||
|
<include name="System.Data.dll" />
|
|||
|
</references>
|
|||
|
<imports>
|
|||
|
<import namespace="System.Data.SqlClient" />
|
|||
|
</imports>
|
|||
|
<code>
|
|||
|
<![CDATA[
|
|||
|
public static void ScriptMain(Project project) {
|
|||
|
string dbUserName = "nant";
|
|||
|
string dbPassword = "nant";
|
|||
|
string dbServer = "(local)";
|
|||
|
string dbDatabaseName = "NAntSample";
|
|||
|
string connectionString = String.Format("Server={0};uid={1};pwd={2};", dbServer, dbUserName, dbPassword);
|
|||
|
|
|||
|
SqlConnection connection = new SqlConnection(connectionString);
|
|||
|
string createDbQuery = "CREATE DATABASE " + dbDatabaseName;
|
|||
|
SqlCommand createDatabaseCommand = new SqlCommand(createDbQuery);
|
|||
|
createDatabaseCommand.Connection = connection;
|
|||
|
|
|||
|
connection.Open();
|
|||
|
|
|||
|
try {
|
|||
|
createDatabaseCommand.ExecuteNonQuery();
|
|||
|
project.Log(Level.Info, "Database added successfully: " + dbDatabaseName);
|
|||
|
} catch (Exception e) {
|
|||
|
project.Log(Level.Error, e.ToString());
|
|||
|
} finally {
|
|||
|
connection.Close();
|
|||
|
}
|
|||
|
}
|
|||
|
]]>
|
|||
|
</code>
|
|||
|
</script>
|
|||
|
</pre>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p> Run Visual Basic.NET code that writes a message to the build log. </p>
|
|||
|
<pre class="code"> <script language="VB">
|
|||
|
<code>
|
|||
|
<![CDATA[
|
|||
|
Public Shared Sub ScriptMain(project As Project)
|
|||
|
project.Log(Level.Info, "Hello World from a script task using Visual Basic.NET")
|
|||
|
End Sub
|
|||
|
]]>
|
|||
|
</code>
|
|||
|
</script>
|
|||
|
</pre>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>Define a custom task and call it using C#.</p>
|
|||
|
<pre class="code"> <script language="C#" prefix="test" >
|
|||
|
<code>
|
|||
|
<![CDATA[
|
|||
|
[TaskName("usertask")]
|
|||
|
public class TestTask : Task {
|
|||
|
#region Private Instance Fields
|
|||
|
private string _message;
|
|||
|
#endregion Private Instance Fields
|
|||
|
#region Public Instance Properties
|
|||
|
[TaskAttribute("message", Required=true)]
|
|||
|
public string FileName {
|
|||
|
get { return _message; }
|
|||
|
set { _message = value; }
|
|||
|
}
|
|||
|
#endregion Public Instance Properties
|
|||
|
#region Override implementation of Task
|
|||
|
protected override void ExecuteTask() {
|
|||
|
Log(Level.Info, _message.ToUpper());
|
|||
|
}
|
|||
|
#endregion Override implementation of Task
|
|||
|
}
|
|||
|
]]>
|
|||
|
</code>
|
|||
|
</script>
|
|||
|
<usertask message='Hello from UserTask'/>
|
|||
|
</pre>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p> Define a custom function and call it using <a href="http://boo.codehaus.org/">Boo</a>. </p>
|
|||
|
<pre class="code"> <script language="Boo.CodeDom.BooCodeProvider, Boo.CodeDom, Version=1.0.0.0, Culture=neutral, PublicKeyToken=32c39770e9a21a67"
|
|||
|
failonerror="true">
|
|||
|
<code>
|
|||
|
<![CDATA[
|
|||
|
|
|||
|
[Function("test-func")]
|
|||
|
def MyFunc():
|
|||
|
return "Hello from Boo !!!!!!"
|
|||
|
]]>
|
|||
|
</code>
|
|||
|
</script>
|
|||
|
<echo message='${script::test-func()}'/>
|
|||
|
</pre>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
<h3>Requirements</h3>
|
|||
|
<div style="margin-left: 20px;">
|
|||
|
<b>Assembly:</b> NAnt.DotNetTasks (0.91.4312.0)
|
|||
|
</div>
|
|||
|
</body>
|
|||
|
</html>
|