Index: Microsoft.Build.Tasks/Microsoft.Build.Tasks/ManagedCompiler.cs =================================================================== --- Microsoft.Build.Tasks/Microsoft.Build.Tasks/ManagedCompiler.cs (revision 66109) +++ Microsoft.Build.Tasks/Microsoft.Build.Tasks/ManagedCompiler.cs (working copy) @@ -76,7 +76,12 @@ commandLine.AppendSwitchIfNotNull ("/out:", OutputAssembly.ItemSpec); if (References != null) { foreach (ITaskItem item in References) { - commandLine.AppendSwitchIfNotNull ("/reference:", item.ItemSpec); + string reference = item.ItemSpec; + if (!String.IsNullOrEmpty(item.GetMetadata("HintPath"))) + { + reference = item.GetMetadata("HintPath"); + } + commandLine.AppendSwitchIfNotNull ("/reference:", reference); } } if (Resources != null) { Index: Microsoft.Build.Tasks/Microsoft.Build.Tasks/Csc.cs =================================================================== --- Microsoft.Build.Tasks/Microsoft.Build.Tasks/Csc.cs (revision 66109) +++ Microsoft.Build.Tasks/Microsoft.Build.Tasks/Csc.cs (working copy) @@ -44,7 +44,7 @@ protected internal override void AddResponseFileCommands (CommandLineBuilderExtension commandLine) { base.AddResponseFileCommands (commandLine); - + if (AllowUnsafeBlocks == true) commandLine.AppendSwitch ("/unsafe"); //baseAddress Index: Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ExpressionCollection.cs =================================================================== --- Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ExpressionCollection.cs (revision 66109) +++ Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ExpressionCollection.cs (working copy) @@ -128,7 +128,14 @@ object ConvertToObject (string raw, Type type) { if (type == typeof (bool)) { - return Boolean.Parse (raw); + if (!String.IsNullOrEmpty(raw)) + { + return Boolean.Parse (raw); + } + else + { + return false; + } } else if (type == typeof (string)) { return raw; } else if (type == typeof (int)) {