<!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.Core.Tasks.SetEnvTask--> <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><setenv> 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" /> <setenv></td> <td class="NavBar-Cell" align="right"> v0.91</td> </tr> </table> <h1><setenv></h1> <p> Sets an environment variable or a whole collection of them. Use an empty <code>value</code> attribute to clear a variable. </p> <p class="i2"> <b>Note:</b> Variables will be set for the current NAnt process and all child processes that NAnt spawns (compilers, shell tools, etc). If the intention is to only set a variable for a single child process, then using the <a href="../tasks/exec.html"><exec></a> task and its nested <code>environment</code> element might be a better option. </p> <p class="i2"> <b>Note:</b> Expansion of inline environment variables is performed using the syntax of the current platform. So on Windows platforms using the string %PATH% in the <code>value</code> attribute will result in the value of the PATH variable being expanded in place before the variable is set. </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">dir</td> <td style="text-align: center;">directory</td> <td> The value for a directory-based environment variable. NAnt will convert it to an absolute path. </td> <td style="text-align: center;">False</td> </tr> <tr> <td valign="top">file</td> <td style="text-align: center;">file</td> <td> The value for a file-based environment variable. NAnt will convert it to an absolute filename. </td> <td style="text-align: center;">False</td> </tr> <tr> <td valign="top">name</td> <td style="text-align: center;">string</td> <td> The name of a single Environment variable to set </td> <td style="text-align: center;">False</td> </tr> <tr> <td valign="top">path</td> <td style="text-align: center;"><path></td> <td> The value for a PATH like environment variable. You can use <code>:</code> or <code>;</code> as path separators and NAnt will convert it to the platform's local conventions. </td> <td style="text-align: center;">False</td> </tr> <tr> <td valign="top">value</td> <td style="text-align: center;">string</td> <td> The literal value for the environment variable. </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> <!--Array--> <!--NestedElementArray=T:NAnt.Core.Types.EnvironmentVariable--> <h4> <a id="variable"> </a> <variable> </h4> <div class="nested-element"> <p> Represents an environment variable. </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">name</td> <td style="text-align: center;">string</td> <td> The name of the environment variable. </td> <td style="text-align: center;">True</td> </tr> <tr> <td valign="top">dir</td> <td style="text-align: center;">directory</td> <td> The value for a directory-based environment variable. NAnt will convert it to an absolute path. </td> <td style="text-align: center;">False</td> </tr> <tr> <td valign="top">file</td> <td style="text-align: center;">file</td> <td> The value for a file-based environment variable. NAnt will convert it to an absolute filename. </td> <td style="text-align: center;">False</td> </tr> <tr> <td valign="top">if</td> <td style="text-align: center;">bool</td> <td> Indicates if the environment variable should be passed to the external program. If <b>true</b> then the environment variable will be passed; otherwise, skipped. The default is <b>true</b>. </td> <td style="text-align: center;">False</td> </tr> <tr> <td valign="top">path</td> <td style="text-align: center;"><path></td> <td> The value for a PATH like environment variable. You can use <code>:</code> or <code>;</code> as path separators and NAnt will convert it to the platform's local conventions. </td> <td style="text-align: center;">False</td> </tr> <tr> <td valign="top">unless</td> <td style="text-align: center;">bool</td> <td> Indicates if the environment variable should not be passed to the external program. If <b>false</b> then the environment variable will be passed; otherwise, skipped. The default is <b>false</b>. </td> <td style="text-align: center;">False</td> </tr> <tr> <td valign="top">value</td> <td style="text-align: center;">string</td> <td> The literal value for the environment variable. </td> <td style="text-align: center;">False</td> </tr> </table> </div> <h3>Nested Elements:</h3> <!--Element--> <h4> <a id="path"> </a> <<a href="../types/path.html">path</a>> </h4> <div class="nested-element"> Sets a single environment variable and treats it like a PATH - ensures the right separator for the local platform is used. <p /></div> <h4> <a id="path"> </a> </<a href="../types/path.html">path</a>> </h4> </div> <h4> <a id="variable"> </a> </variable> </h4> <h3>Examples</h3> <ul class="examples"> <li> <p>Set the MONO_PATH environment variable on a *nix platform.</p> <pre class="code"> <setenv name=="MONO_PATH" value="/home/jimbob/dev/foo:%MONO_PATH%"/> </pre> </li> <li> <p>Set a collection of environment variables. Note the nested variable used to set var3.</p> <pre class="code"> <setenv> <variable name="var1" value="value2" /> <variable name="var2" value="value2" /> <variable name="var3" value="value3:%var2%" /> </setenv> </pre> </li> <li> <p>Set environment variables using nested path elements.</p> <pre class="code"> <path id="build.path"> <pathelement dir="c:/windows" /> <pathelement dir="c:/cygwin/usr/local/bin" /> </path> <setenv> <variable name="build_path" > <path refid="build.path" /> </variable> <variable name="path2"> <path> <pathelement dir="c:/windows" /> <pathelement dir="c:/cygwin/usr/local/bin" /> </path> </variable> </setenv> </pre> </li> </ul> <h3>Requirements</h3> <div style="margin-left: 20px;"> <b>Assembly:</b> NAnt.Core (0.91.4312.0) </div> </body> </html>