+ base.AddResponseFileCommands (commandLine);
+
+ commandLine.AppendSwitchIfNotNull ("/libpath:", AdditionalLibPaths, ",");
+
+ commandLine.AppendSwitchIfNotNull ("/baseaddress:", BaseAddress);
+
+ if (DefineConstants != null)
+ commandLine.AppendSwitchUnquotedIfNotNull ("/define:",
+ String.Format ("\"{0}\"", EscapeDoubleQuotes (DefineConstants)));
+
+ // DisabledWarnings
+
+ commandLine.AppendSwitchIfNotNull ("/doc:", DocumentationFile);
+
+ // ErrorReport
+
+ // GenerateDocumentation
+
+ if (Imports != null)
+ foreach (ITaskItem item in Imports)
+ commandLine.AppendSwitchIfNotNull ("/imports:", item.ItemSpec);
+
+ commandLine.AppendSwitchIfNotNull ("/main:", MainEntryPoint);
+
+ // NoStandardLib
+
+ if (NoWarnings)
+ commandLine.AppendSwitch ("/nowarn");
+
+ commandLine.AppendSwitchIfNotNull ("/optioncompare:", OptionCompare);
+
+ if (Bag ["OptionExplicit"] != null)
+ if (OptionExplicit)
+ commandLine.AppendSwitch ("/optionexplicit+");
+ else
+ commandLine.AppendSwitch ("/optionexplicit-");
+
+ if (Bag ["OptionStrict"] != null)
+ if (OptionStrict)
+ commandLine.AppendSwitch ("/optionstrict+");
+ else
+ commandLine.AppendSwitch ("/optionstrict-");
+
+ // OptionStrictType
+
+ // Platform
+
+ if (References != null)
+ foreach (ITaskItem item in References)
+ commandLine.AppendSwitchIfNotNull ("/reference:", item.ItemSpec);
+
+ if (Bag ["RemoveIntegerChecks"] != null)
+ if (RemoveIntegerChecks)
+ commandLine.AppendSwitch ("/removeintchecks+");
+ else
+ commandLine.AppendSwitch ("/removeintchecks-");
+
+ if (ResponseFiles != null)
+ foreach (ITaskItem item in ResponseFiles)
+ commandLine.AppendFileNameIfNotNull (String.Format ("@{0}", item.ItemSpec));
+
+ commandLine.AppendSwitchIfNotNull ("/rootnamespace:", RootNamespace);
+
+ commandLine.AppendSwitchIfNotNull ("/sdkpath:", SdkPath);
+
+ // TargetCompactFramework
+
+ // Verbosity
+
+ // WarningsAsErrors
+
+ // WarningsNotAsErrors
+
+ }
+
+ string EscapeDoubleQuotes (string text)
+ {
+ if (text == null)
+ return null;
+
+ return text.Replace ("\"", "\\\"");