Jonathan Pryor [Thu, 20 Feb 2014 03:11:48 +0000 (22:11 -0500)]
[runtime] Add a "mobile" runtime version.
Xamarin.Android has historically used the "v2.0.50727" runtime
version -- which works -- but has the side effect that Mono constantly
generates runtime "warnings" akin to:
The request to load the assembly mscorlib v2.0.5.0 was remapped to v2.0.0.0
The reason for this is that all of the Xamarin.Android assemblies have
the version number v2.0.5.0, while the "v2.0.50727" runtime version
expects assemblies to have version number v2.0.0.0; they differ.
Result: Mono warns (appropriately), and I do my best to ignore the
~meaningless warning message. (For years and years and years...)
It's time we fixed this.
Introduce a "mobile" runtime version which specifies the
Xamarin.Android v2.0.5.0 assembly versions. Xamarin.Android 4.14+ will
then specify the "mobile" runtime version, "fixing" the assembly remap
messages.
Alex Rønne Petersen [Thu, 20 Feb 2014 00:26:57 +0000 (01:26 +0100)]
Merge pull request #906 from kelly-linden/master
Add msvc/mono.props to EXTRA_DIST so make dist will find it.
Kelly [Thu, 20 Feb 2014 00:23:24 +0000 (16:23 -0800)]
Add msvc/mono.props to EXTRA_DIST so make dist will find it.
Zoltan Varga [Wed, 19 Feb 2014 21:14:20 +0000 (16:14 -0500)]
Fix a warning.
Zoltan Varga [Wed, 19 Feb 2014 20:26:33 +0000 (15:26 -0500)]
[jit] Optimize mono_merge_basic_blocks () for large methods.
Zoltan Varga [Wed, 19 Feb 2014 20:25:13 +0000 (15:25 -0500)]
[jit] Fix a crash when using -v -v -v -v with dynamic methods.
Aaron Bockover [Wed, 19 Feb 2014 19:22:01 +0000 (14:22 -0500)]
mono-api-html: ignore members using regex, add detailed help
Aaron Bockover [Wed, 19 Feb 2014 18:54:01 +0000 (13:54 -0500)]
mono-api-html: support ignoring added members
Use Mono.Options as well.
Rodrigo Kumpera [Wed, 19 Feb 2014 19:19:35 +0000 (14:19 -0500)]
[bcl] Fix test suites.
Rodrigo Kumpera [Wed, 19 Feb 2014 19:13:01 +0000 (14:13 -0500)]
Bump version.
Zoltan Varga [Wed, 19 Feb 2014 18:16:09 +0000 (13:16 -0500)]
[jit] Fix the stack cleanup during EH on x86 when LLVM is enabled.
Marek Safar [Wed, 19 Feb 2014 17:03:28 +0000 (18:03 +0100)]
Add failing Uri test
Marek Safar [Wed, 19 Feb 2014 16:44:22 +0000 (17:44 +0100)]
[System] Kill some Uri static fields
Rodrigo Kumpera [Wed, 19 Feb 2014 16:59:49 +0000 (11:59 -0500)]
Merge pull request #903 from simonhartmann/master
Bug 17838 - IDictionary item property implemention for ConcurrentDiction...
Simon Hartmann [Tue, 18 Feb 2014 12:00:05 +0000 (13:00 +0100)]
Bug 17838 - IDictionary item property implemention for ConcurrentDictionary/SortedList_T throws exception on non-existing key
Avoid double lookup for Dictionary IDictionary.get_Item property impl
Sebastien Pouliot [Wed, 19 Feb 2014 14:54:22 +0000 (09:54 -0500)]
[SSL/TLS] Fix typo to build when INSIDE_SYSTEM is defined
Marek Safar [Wed, 19 Feb 2014 14:29:02 +0000 (15:29 +0100)]
[System.Net.Http] Return ContentLength of the buffer when content is loaded into a buffer in request handler. Fixes #17861
Marek Safar [Wed, 19 Feb 2014 14:09:00 +0000 (15:09 +0100)]
Merge pull request #905 from AxlPr/master
Fixed time out on HTTP redirects
Sebastien Pouliot [Wed, 19 Feb 2014 13:51:23 +0000 (08:51 -0500)]
[SSL/TLS] Update tlstest tool to build with 4.5 and to use/filter the client cipher suites
Sebastien Pouliot [Wed, 19 Feb 2014 13:50:05 +0000 (08:50 -0500)]
[SSL/TLS] Expose Client/Server callbacks that can be used to select/reorder SSL/TLS cipher suites used (for client or server) and add unit tests for them [#16327]
Sebastien Pouliot [Wed, 19 Feb 2014 13:29:23 +0000 (08:29 -0500)]
[SSL/TLS] Add support to select and/or re-order ciphers suites [#16327]
Sebastien Pouliot [Mon, 17 Feb 2014 19:13:33 +0000 (14:13 -0500)]
[System] Add new NET_4_5 values for SslProtocols enum
AxlPr [Wed, 19 Feb 2014 13:27:22 +0000 (13:27 +0000)]
Fixed time outs on http redirects
Fixed bug introduced by change
6ab86f50fd944b770ca388b478ce3cfb8b065647
where http request times out when it encounters a redirect.
Martin Baulig [Wed, 19 Feb 2014 10:02:37 +0000 (11:02 +0100)]
[System] WebConnection and WebConnectionStream code cleanups.
* Merged WebConnection.EndWrite() and EndWrite2().
* WebConnectionStream.BeginWrite(): Use the same async-write
callback for both chunked and non-chunked; remove the single-use
small WriteRequestAsync() and inline it here to make the code
more readable.
* WebConnectionStream.WriteRequestAsyncCB(): Now called for all
async writes, call WebConnection.EndWrite() here.
The code is now more readable and easier to understand. This is
the first part of a series of cleanups, which should eventually
lead towards full async and 100-continue.
Alex Rønne Petersen [Wed, 19 Feb 2014 02:43:27 +0000 (03:43 +0100)]
Fix some warnings on !MONO_ARCH_AOT_SUPPORTED targets.
Alex Rønne Petersen [Wed, 19 Feb 2014 02:34:19 +0000 (03:34 +0100)]
Fix another mips32 warning.
Alex Rønne Petersen [Wed, 19 Feb 2014 02:16:47 +0000 (03:16 +0100)]
Fix some warnings on mips32.
Michael Hutchinson [Tue, 18 Feb 2014 23:23:19 +0000 (18:23 -0500)]
[xbuild] Exists should be false for empty values
BXC17802 - xbuild evaluates Exist wrongly when the item group does not exist
Alex Rønne Petersen [Tue, 18 Feb 2014 21:21:09 +0000 (22:21 +0100)]
ARM: Emit shorter floating point load/store sequences when possible.
Alex Rønne Petersen [Tue, 18 Feb 2014 20:24:44 +0000 (21:24 +0100)]
ARM: Handle large offsets in emit_float_args ().
Alex Rønne Petersen [Mon, 17 Feb 2014 21:19:29 +0000 (22:19 +0100)]
ARM: Back up VFP scratch registers before using them on hard float.
This is because d0-d7 are argument registers and d8-d15 are
preserved registers - we can't use any of them as scratch
registers without restoring their previous values.
Michael Hutchinson [Tue, 18 Feb 2014 21:59:37 +0000 (16:59 -0500)]
[xbuild] Really don't local-copy mscorlib
Rodrigo Kumpera [Tue, 18 Feb 2014 21:36:13 +0000 (16:36 -0500)]
[runtime] Fix the linux build.
Marek Safar [Tue, 18 Feb 2014 21:33:01 +0000 (22:33 +0100)]
[corlib] Change AggregateException get base exception to not rely on base GetBaseException
Marek Safar [Tue, 18 Feb 2014 20:41:16 +0000 (21:41 +0100)]
[corlib] Remove unreliable test check
Michael Hutchinson [Mon, 17 Feb 2014 22:21:11 +0000 (17:21 -0500)]
[xbuild] Clean up some API to match .NET
Some .NET 4 API had leaked into .NET 2 builds.
Michael Hutchinson [Mon, 17 Feb 2014 20:21:11 +0000 (15:21 -0500)]
[xbuild] Fix accidental local-copy of mscorlib
s
Michael Hutchinson [Mon, 17 Feb 2014 20:20:51 +0000 (15:20 -0500)]
[xbuild] Fix PCL 4.5 targets
Sebastien Pouliot [Tue, 18 Feb 2014 15:49:25 +0000 (10:49 -0500)]
[Test] Fix previous test change as the test is dependent on line numbers
Sebastien Pouliot [Tue, 18 Feb 2014 13:44:10 +0000 (08:44 -0500)]
[Test] Avoid StackFrameTest.* failures when debugging symbols are not available (e.g. release configuration on iOS or Android)
Sebastien Pouliot [Tue, 18 Feb 2014 13:42:58 +0000 (08:42 -0500)]
[Test] Avoid MethodInfoTest.GetMethodBody failure when executed on a release (IL stripped) application on iOS
Sebastien Pouliot [Tue, 18 Feb 2014 13:42:03 +0000 (08:42 -0500)]
[Test] Change FileTtest.MoveTest to use the temporary directory so it can be executed, without an access denied, on most environment (e.g. an iOS device)
Marek Safar [Tue, 18 Feb 2014 10:42:47 +0000 (11:42 +0100)]
Merge pull request #901 from Blewzman/FixAggregateExceptionGetBaseException
Add [Category ("NotWorking")] to failing test.
Blewzman [Tue, 18 Feb 2014 09:22:54 +0000 (10:22 +0100)]
Add [Category ("NotWorking")] to failing test.
Alex Rønne Petersen [Tue, 18 Feb 2014 02:41:27 +0000 (03:41 +0100)]
Merge pull request #898 from UCIS/patch-3
Prevent exception in finalization of Form class
Alex Rønne Petersen [Tue, 18 Feb 2014 02:41:02 +0000 (03:41 +0100)]
Merge pull request #899 from UCIS/patch-4
Fix error in ToolStripItem finalization
Zoltan Varga [Mon, 17 Feb 2014 23:34:26 +0000 (18:34 -0500)]
[llvm] Disable the 'dse' optimization pass as it is buggy and causes #17616. Fixes #17616.
Rodrigo Kumpera [Mon, 17 Feb 2014 21:43:10 +0000 (16:43 -0500)]
[runtime] Add two variants of mono_gc_bzero and mono_gc_memmove. They better convey the behavior we need.
After reviewing all usage of mono_gc_bzero and mono_gc_memmove, I found that there are two usage patterns
we care for:
1)Aligned pointer, any size, have managed pointers.
This happens when directly dealing with managed objects like when cloning of boxing.
On this case, all pointers MUST be aligned.
2)Maybe aligned pointer, any size, might have managed pointers.
This happens for functions dealing with structs, specially around boxing and unboxing them.
Our data layout code ensures that structs with managed layout are aligned to at least a word.
This means that if the pointer is unaligned, no managed pointer can exists in the memory range
been processed.
Given those two scenarios, lets introduce two variants that enforce those constrains.
_aligned:
Pointers must be aligned, ensures atomicity of word copies;
_atomic:
If pointers are aligned, works like _aligned, otherwise it inherits the behavior of the
system memmove&memset.
The above split ensures we won't have to deal with any RISC unaligned load nonsense.
It also adds some sanity checks to code that must respect alignment.
We still need fast code for mono_gc_memmove_aligned and mono_gc_bzero_aligned.
We still need to verify if a version of memcpy version is needed. Maybe the extra
branch is not such a perf penalty.
Marek Safar [Mon, 17 Feb 2014 16:56:55 +0000 (17:56 +0100)]
Merge pull request #900 from Blewzman/FixAggregateExceptionGetBaseException
Add unit test for AggregateException.GetBaseException that works on .net but is broken on Mono.
Blewzman [Mon, 17 Feb 2014 16:07:26 +0000 (17:07 +0100)]
Add unit test for AggregateException.GetBaseException that works on .net but is broken on Mono.
Marek Safar [Mon, 17 Feb 2014 15:36:55 +0000 (16:36 +0100)]
[mcs] Add NamespaceExpression to avoid problems with error location for misused namespaces. Fixes #17803
Rolf Bjarne Kvinge [Mon, 17 Feb 2014 14:52:10 +0000 (15:52 +0100)]
Properly preserve VPF registers in iOS. Fixes #17793.
Marek Safar [Mon, 17 Feb 2014 10:12:35 +0000 (11:12 +0100)]
[mcs] Add nested types handling to check whether types unify for some type parameter substitutions. Fixes #17647
Marek Safar [Mon, 17 Feb 2014 10:12:04 +0000 (11:12 +0100)]
Merge pull request #891 from DavidKarlas/listenerprefix
HttpListener now listens on default ports if not specified instead of random
Marek Safar [Sun, 16 Feb 2014 17:10:50 +0000 (18:10 +0100)]
[corlib] Throw CultureNotFoundException using invariant culture. Fixes #17690
David Karlaš [Sun, 16 Feb 2014 12:58:32 +0000 (04:58 -0800)]
HttpListener now listens on default ports if not specified instead of random
Zoltan Varga [Thu, 13 Feb 2014 22:41:26 +0000 (23:41 +0100)]
Revert "[jit] Implement OP_CARD_TABLE_WBARRIER on ios."
This reverts commit
b3f36681c72a6900cd5e9df9b593d555b351669f.
Revert this as it breaks mt.
Zoltan Varga [Thu, 13 Feb 2014 22:40:31 +0000 (23:40 +0100)]
Marek Safar [Fri, 14 Feb 2014 16:40:09 +0000 (17:40 +0100)]
Marek Safar [Fri, 14 Feb 2014 16:36:26 +0000 (17:36 +0100)]
[corlib] Unicode numbers are not considers valid in number parsing. Fixes #17628
Marek Safar [Fri, 14 Feb 2014 15:25:29 +0000 (16:25 +0100)]
[corlib] Fix warnings
Marek Safar [Fri, 14 Feb 2014 10:54:42 +0000 (11:54 +0100)]
[corlib] Improve TimeSpan custom formatting. Fixes #17699
Joao Matos [Thu, 13 Feb 2014 21:47:29 +0000 (16:47 -0500)]
Fixed incomplete decompression bug in System.IO.Compression.DeflateStream.
Call zlib's inflate() even if no data was read from the stream, there might still be some data left to process.
Originally reported by Eric Roller, as Xamarin bugzilla #17183.
https://bugzilla.xamarin.com/show_bug.cgi?id=17183
Reviewed by Rodrigo Kumpera.
Marek Safar [Thu, 13 Feb 2014 21:26:13 +0000 (22:26 +0100)]
[corlib] Reset List enumerator current field. Fixes #17760
Marek Safar [Thu, 13 Feb 2014 21:13:30 +0000 (22:13 +0100)]
Fix typo
Marek Safar [Thu, 13 Feb 2014 18:58:40 +0000 (19:58 +0100)]
[system] Fix valid sorted set operations which could cause underlying tree modification
Marek Safar [Thu, 13 Feb 2014 18:05:42 +0000 (19:05 +0100)]
[mcs] Imported methods need to have SpecialName flag to be valid C# operators
Marek Safar [Thu, 13 Feb 2014 17:05:24 +0000 (18:05 +0100)]
Tests update
Martin Baulig [Thu, 13 Feb 2014 15:10:12 +0000 (16:10 +0100)]
Put back and fix the SSL async patch.
Revert "Revert "Merge pull request #829 from symform/httpwebreq-async-ssl""
This reverts commit
56d9a057eb612124a6fa1566990d1002f699c744, which was a
revert of
35899c07fff7f7e4c6533364091bbac6ce86fdfd, thus putting 35889 back.
Marek Safar [Thu, 13 Feb 2014 15:33:00 +0000 (16:33 +0100)]
[mcs] Lift any non-nullable operand under runtime binder for lifted binary operation
Rodrigo Kumpera [Thu, 13 Feb 2014 16:02:09 +0000 (11:02 -0500)]
Merge pull request #897 from echampet/scanbuild
Scanbuild
Martin Baulig [Thu, 13 Feb 2014 14:47:52 +0000 (15:47 +0100)]
[System]: Reset NTLM auth state when redirecting; distinguish host and proxy.
Martin Baulig [Thu, 13 Feb 2014 12:17:57 +0000 (13:17 +0100)]
Rewrite and fix the web stack's connection reuse and idle logic.
* ServicePoint now uses an idle timer to close idle connections.
* WebConnectionGroup has been mostly rewritten to use a linked
list of open connections and their idle times.
This fixes both the problem that we were leaking sockets and
that we were not reusing existing connections.
* ServicePoint now correctly keeps track of the number of open
connections.
* ServicePointManager now uses the correct default idle time
of 100 seconds (previously 15 minutes).
* WebConnection uses the new WebConnectionGroup's busy logic
to correctly flag connections as busy / reusable.
Martin Baulig [Thu, 9 Jan 2014 14:23:53 +0000 (15:23 +0100)]
Fix WebConnectionStream.CheckComplete() logic for chunked encoding.
Rodrigo Kumpera [Thu, 13 Feb 2014 00:12:03 +0000 (19:12 -0500)]
[corlib] Fix the 4.5 test suite.
Rodrigo Kumpera [Thu, 13 Feb 2014 00:00:30 +0000 (19:00 -0500)]
[runtime] Initialize param_count under DISABLE_JIT
Rodrigo Kumpera [Wed, 12 Feb 2014 23:50:39 +0000 (18:50 -0500)]
[runtime] Don't abort on null module scope, there's nothing special to do there. Fixes #5835.
The defacto behavior of a null module scope is to resolve in the current image.
Rodrigo Kumpera [Wed, 12 Feb 2014 20:02:24 +0000 (15:02 -0500)]
[corlib] Remove obj_address debug helper, if anyone needs this, it can be done with overlapping fields.
Rodrigo Kumpera [Wed, 12 Feb 2014 19:13:40 +0000 (14:13 -0500)]
[corlib] Fix 4.0 test suite compilation.
Miguel de Icaza [Wed, 12 Feb 2014 21:06:32 +0000 (16:06 -0500)]
Add test for Bug #15572 from pull request #820
Miguel de Icaza [Wed, 12 Feb 2014 20:39:18 +0000 (15:39 -0500)]
Add tests for bug #15574, pull request 819
Miguel de Icaza [Wed, 12 Feb 2014 20:38:17 +0000 (15:38 -0500)]
Add tests for bug #15574, pull request 819
Miguel de Icaza [Wed, 12 Feb 2014 20:31:12 +0000 (15:31 -0500)]
Merge pull request #820 from brendanzagaeski/master
Bug 15572. Lookup KnownTypeCollection element types in MSSimpleNamespace
Miguel de Icaza [Wed, 12 Feb 2014 20:30:30 +0000 (15:30 -0500)]
Merge pull request #819 from brendanzagaeski/patch-1
Bug 15574. XML deserialization recursion: add array type to known_types?
Miguel de Icaza [Wed, 12 Feb 2014 20:29:39 +0000 (15:29 -0500)]
Merge pull request #796 from alesliehughes/master
Support for DispIdAttribute in GetIdsOfNames
Miguel de Icaza [Wed, 12 Feb 2014 20:25:59 +0000 (15:25 -0500)]
Merge pull request #778 from cmorris98/master
SqlBulkCopy Implementation
Miguel de Icaza [Wed, 12 Feb 2014 20:24:11 +0000 (15:24 -0500)]
Merge pull request #835 from HorstKakuschke/master
Fixes Xamarin Bug 16742: XmlConvert.ToDateTime(string, XmlDateTimeSeria...
Michael Hutchinson [Wed, 12 Feb 2014 19:02:45 +0000 (14:02 -0500)]
[xbuild] Fix dependency in C# targets
There was a typo in DependsOnTargets attribute of the
_AddCorlibReference target definition. It didn't break any
behaviour, since the target it depended on was always built
earlier in the build anyway, so it was really a sanity check.
However, it broke the tests for the new (unused) engine,
Microsoft.Build.dll, which checks for unexpected attributes.
Zoltan Varga [Wed, 12 Feb 2014 19:10:50 +0000 (20:10 +0100)]
Revert "[jit] Align the stack in mono_arch_restore_context () on x86 since it might be unaligned if it was captured asynchronously."
This reverts commit
7798b94706e5552cd1abd80227631f3f9b1bfdad.
Revert this as it breaks debugging on android/x86 (#17410).
Miguel de Icaza [Wed, 12 Feb 2014 18:19:31 +0000 (13:19 -0500)]
[mscorlib] Path: fix GetFullPath (/../bin/bash) to return /bin/bash, not bin/bash, fixes 17083
Miguel de Icaza [Wed, 12 Feb 2014 17:07:22 +0000 (12:07 -0500)]
[HttpListener] Only bind to the specified hosts (and support '*' as Any), fixes #17204, #10818
Michael Hutchinson [Wed, 12 Feb 2014 17:00:38 +0000 (12:00 -0500)]
[xbuild] Fix 2.0 tests to handle mcs sdk argument
Miguel de Icaza [Wed, 12 Feb 2014 16:08:12 +0000 (11:08 -0500)]
[Uri] Fix the ParserUser feature of UriParseComponents
The current implementation was wrong, did not bother with pct-encoding
(despite being listed in the comments) and did not use the actual set
of characters listed on the spec, instead of using a white-list, it
had its own incorrect black-list.
Miguel de Icaza [Tue, 11 Feb 2014 23:07:39 +0000 (18:07 -0500)]
#17636: Allow Int32.Parse with/AllowExponents to take negative exponents. This is a change in behavior from 2009, when we fixed this: Novell#542464, now we match .NET 4.5
Miguel de Icaza [Wed, 12 Feb 2014 03:02:25 +0000 (22:02 -0500)]
[DataAnnotation.Validator] Add support for nullable types, patch from lmarinucci@yahoo.com, fixes #17318
Miguel de Icaza [Wed, 12 Feb 2014 02:53:31 +0000 (21:53 -0500)]
WebRequest: Provide stub ImpersonationLevel
The old implementation threw an exception requesting that the method be implemented
in a derived class, but the method is not virtual, so it could have never been
implemented.
Since Mono does not support this, at least we keep the token around and avoid
throwing.
Ivo Smits [Tue, 11 Feb 2014 22:55:54 +0000 (23:55 +0100)]
Fix error in ToolStripItem finalization
The Dispose function in ToolStripItem should not remove itself from its owner during finalization. Finalization implies that the owner has also been garbage collected, and accessing it may result in undesirable behaviour. More specifically, the call to owner.Items.Remove ultimately may boil down to a call to GDI+ throwing an Exception like the following:
Program.UnhandledException: System.ArgumentException: A null reference or invalid value was found [GDI+ status: InvalidParameter]
at System.Drawing.GDIPlus.CheckStatus (Status status) [0x00000] in <filename unknown>:0
at System.Drawing.Graphics.GdipMeasureString (IntPtr graphics, System.String text, System.Drawing.Font font, System.Drawing.RectangleF& layoutRect, IntPtr stringFormat) [0x00000] in <filename unknown>:0
at System.Drawing.Graphics.MeasureString (System.String text, System.Drawing.Font font, Int32 width, System.Drawing.StringFormat format) [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Drawing.Graphics:MeasureString (string,System.Drawing.Font,int,System.Drawing.StringFormat)
at System.Windows.Forms.TextRenderer.MeasureTextInternal (IDeviceContext dc, System.String text, System.Drawing.Font font, Size proposedSize, TextFormatFlags flags, Boolean useMeasureString) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextRenderer.MeasureText (System.String text, System.Drawing.Font font, Size proposedSize, TextFormatFlags flags) [0x00000] in <filename unknown>:0
at System.Windows.Forms.ToolStripItem.CalculateAutoSize () [0x00000] in <filename unknown>:0
at System.Windows.Forms.ToolStripItem.set_InternalOwner (System.Windows.Forms.ToolStrip value) [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.ToolStripItem:set_InternalOwner (System.Windows.Forms.ToolStrip)
at System.Windows.Forms.ToolStripItemCollection.Remove (System.Windows.Forms.ToolStripItem value) [0x00000] in <filename unknown>:0
at System.Windows.Forms.ToolStripItem.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0
at System.Windows.Forms.ToolStripDropDownItem.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0
at System.Windows.Forms.ToolStripMenuItem.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0
at System.ComponentModel.Component.Finalize () [0x00000] in <filename unknown>:0
Michael Hutchinson [Tue, 11 Feb 2014 21:46:28 +0000 (16:46 -0500)]
[xbuild] Fix Tooltask.ToolPath behaviour to match .NET
Michael Hutchinson [Tue, 11 Feb 2014 21:44:09 +0000 (16:44 -0500)]
[xbuild] Make ToolLocationHelper work better for 2.0/3.5
Mono keeps unversioned tools in the 4.5 directory, so look there
for 2.0. Additionally, most 3.5 tools are in the 2.0 directory.
Michael Hutchinson [Tue, 11 Feb 2014 21:41:08 +0000 (16:41 -0500)]
[xbuild] Fix typo that broke 2.0/3.5 targets