|
This is a patch for bug 1156702. It adds the “releasesymbols” attribute to the
solution task. If set to true and a project in the solution is set to not
generate debug information (DebugSymbols is false) then it sets the debug
setting to “/debug:pdbonly” instead of “/debug-“. This
will generate the pdb file but otherwise leave the assembly as a release build
(no debuggable attribute added). Brian Walker |
Index: ConfigurationSettings.cs
===================================================================
RCS file: /cvsroot/nant/nant/src/NAnt.VSNet/ConfigurationSettings.cs,v
retrieving revision 1.28
diff -c -r1.28 ConfigurationSettings.cs
*** ConfigurationSettings.cs 3 Mar 2005 06:49:52 -0000 1.28
--- ConfigurationSettings.cs 4 Mar 2005 18:11:16 -0000
***************
*** 104,110 ****
break;
}
- htBooleanSettings["DebugSymbols"] = "/debug";
htBooleanSettings["TreatWarningsAsErrors"] = "/warnaserror";
htBooleanSettings["Optimize"] = "/optimize";
--- 104,109 ----
***************
*** 137,142 ****
--- 136,153 ----
}
}
+ string debugValue = elemConfig.GetAttribute("DebugSymbols");
+ if (string.Compare(debugValue, "true", true,
CultureInfo.InvariantCulture) == 0) {
+ _settings.Add("/debug+");
+ } else if (string.Compare(debugValue, "false", true,
CultureInfo.InvariantCulture) == 0) {
+ if (SolutionTask.EnableReleaseSymbols) {
+ _settings.Add("/debug:pdbonly");
+ }
+ else {
+ _settings.Add("/debug-");
+ }
+ }
+
_settings.Add(string.Format(CultureInfo.InvariantCulture,
"/out:\"{0}\"", BuildPath));
}
Index: Tasks/SolutionTask.cs
===================================================================
RCS file: /cvsroot/nant/nant/src/NAnt.VSNet/Tasks/SolutionTask.cs,v
retrieving revision 1.45
diff -c -r1.45 SolutionTask.cs
*** Tasks/SolutionTask.cs 18 Dec 2004 15:28:45 -0000 1.45
--- Tasks/SolutionTask.cs 4 Mar 2005 18:11:16 -0000
***************
*** 323,328 ****
--- 323,343 ----
}
/// <summary>
+ /// Should debug symbols (pdb file) be generated for release builds.
The default is <see langword="false" />.
+ /// </summary>
+ /// <remarks>
+ /// If a project file specifies that debug information should not be
generated,
+ /// this flag can override to generate a pdb file without adding debug
+ /// information to the assembly.
+ /// </remarks>
+ [TaskAttribute("releasesymbols", Required = false)]
+ [BooleanValidator()]
+ public bool EnableReleaseSymbols {
+ get { return _enableReleaseSymbols; }
+ set { _enableReleaseSymbols = value; }
+ }
+
+ /// <summary>
/// Gets the list of folders to scan for assembly references.
/// </summary>
/// <value>
***************
*** 580,585 ****
--- 595,601 ----
private WebMapCollection _webMaps;
private bool _includeVSFolders = true;
private bool _enableWebDav;
+ private bool _enableReleaseSymbols;
#endregion Private Instance Fields
}
