Index: LightTask.cs
===================================================================
--- LightTask.cs	(revision 279)
+++ LightTask.cs	(working copy)
@@ -10,12 +10,16 @@
 
 namespace Microsoft.Tools.WindowsInstallerXml.NAntTasks
 {
-    using System;
-    using System.IO;
+	using System;
+	using System.Collections.Specialized;
+	using System.Diagnostics;
+	using System.IO;
+	using System.Globalization;
 
     using NAnt.Core;
     using NAnt.Core.Attributes;
     using NAnt.Core.Types;
+	using NAnt.Core.Util;
 
     /// <summary>
     /// Represents the NAnt task for the &lt;light&gt; element in a NAnt script.
@@ -31,6 +35,7 @@
         private string cultures;
         private FileSet localizations;
         private string suppressICEs;
+		private OptionCollection defines = new OptionCollection();
         #endregion
 
         #region Constructors
@@ -52,6 +57,14 @@
         // Properties
         //==========================================================================================
 
+		/// <summary>
+		/// Gets the preprocessor variable definitions.
+		/// </summary>
+		[BuildElementCollection("defines", "define")]
+		public OptionCollection Defines {
+			get { return this.defines; }
+		}
+
         /// <summary>
         /// Gets or sets the cultures to use.
         /// </summary>
@@ -113,6 +126,12 @@
                     writer.WriteLine("-sice:{0}", suppressICE);
                 }
             }
+
+			// Write out the definitions
+			foreach (Option define in this.Defines) {
+				string commandLine = String.Format(CultureInfo.InvariantCulture, "-d{0}=\"{1}\"", define.OptionName, define.Value);
+				writer.WriteLine(commandLine);
+			}
         }
         #endregion
     }
