<div dir="ltr"><div style>Hi,</div><div style><br></div><div style>I'm trying to execute the ResolveAssemblyReferences task using the Microsoft.Build namespace. This (F#) project builds nicely from the command line using xbuild, so the logic is capable. The project file can be found here: <a href="https://github.com/fsharp/fsharpbinding/blob/master/FSharp.AutoComplete/FSharp.AutoComplete.fsproj">https://github.com/fsharp/fsharpbinding/blob/master/FSharp.AutoComplete/FSharp.AutoComplete.fsproj</a> and has TargetFrameworkVersion set to 4.5. If I change TargetFrameworkVersion to 4.0, it works.</div>

<div style><br></div><div style>I downloaded mono from github and am running the latest version: Mono JIT compiler version 3.0.4 (master/e5fba9d Wed Jan 30 18:38:48 GMT 2013). I also tried with 3.0.3, with the same effect.</div>

<div style><br></div><div style>The following fsi script is what I am using:</div><div style><br></div><div style>#r "Microsoft.Build.Engine"<br></div><div><div>#r "Microsoft.Build.Framework"</div><div>

#r "Microsoft.Build.Tasks.v4.0"</div><div>open Microsoft.Build.BuildEngine</div><div>open Microsoft.Build.Framework</div><div>open Microsoft.Build.Tasks</div></div><div><br></div><div><div>let p = new Project()</div>

<div>let cl = new ConsoleLogger(LoggerVerbosity.Diagnostic)</div></div><div><div>p.ParentEngine.RegisterLogger(cl)</div><div>p.Load("FSharp.AutoComplete.fsproj")</div></div><div><br></div><div>p.Build([|"ResolveAssemblyReferences"|])<br>

</div><div><br></div><div style>which results in:</div><div style><br></div><div style><div><path>/FSharp.AutoComplete.fsproj (ResolveAssemblyReferences) -></div><div>/home/scratch/local_mono/lib/mono/4.0/Microsoft.Common.targets (GetFrameworkPaths target) -></div>

<div><br></div><div><span class="" style="white-space:pre">   </span>/home/scratch/local_mono/lib/mono/4.0/Microsoft.Common.targets: error : Error executing task GetFrameworkPath: The parameter 'FrameworkVersion45Path' was not found for the 'GetFrameworkPath' task.</div>

<div><br></div><div style>I found that the framework path for 4.5 doesn't seem to be defined:</div><div style><br></div><div><div>let gfp = GetFrameworkPath()</div><div>gfp.FrameworkVersion45Path</div></div><div style>

<br></div><div style>error FS0039: The field, constructor or member 'FrameworkVersion45Path' is not defined</div><div style><br></div><div style>Although in mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/GetFrameworkPath.cs has a #if NET_4_5 around FrameworkVersion45Path, and .NET 4.5 is definitely enabled in the configure script, and I have a fully populated lib/mono/4.5 directory.</div>

<div style><br></div><div style>I also found that the Engine toolsets do not include 4.5. I tried adding it manually, but this didn't help.<br></div><div style><br></div><div style>I think this is a bug, and would appreciate any hints in tracking it down.</div>

<div style><br>Thanks,</div><div style>Robin Neatherway</div><div><br></div></div></div>