<div dir="ltr">Sorry to bring this thread up after so much time, but I haven't had too much time on my hands lately. I've been trying to understand XBuild's and Microsoft.Build.Engine's code in Mono to be able to contribute (even if just a little bit) but I'm having a hard time understanding what is going on. First, I had to do some "trickery" to get xbuild to build inside Monodevelop. More specifically, I tried opening /mcs/tools/xbuild/xbuild.sln with Monodevelop and build, but before I was able to do that, I had to do the following:<div>
<br></div><div>Include some files in /mcs/class/Microsoft.Build.Engine/Microsoft.Build.Engine.csproj. The files below were already included in Microsoft.Build.Engine-net_[2_0,3_5,4_0,4_5].csproj:</div><div><div>    <Compile Include="Microsoft.Build.BuildEngine\IBuildTask.cs" /></div>
<div>    <Compile Include="Microsoft.Build.BuildEngine\ToolsetCollection.cs" /></div><div>    <Compile Include="Microsoft.Build.BuildEngine\ToolsetDefinitionLocations.cs" /></div><div>    <Compile Include="Microsoft.Build.BuildEngine\Toolset.cs" /></div>
<div>    <Compile Include="Microsoft.Build.BuildEngine\ProjectLoadSettings.cs" /></div><div>    <Compile Include="Microsoft.Build.BuildEngine\ExpressionEvaluationException.cs" /></div><div>
    <Compile Include="Microsoft.Build.BuildEngine\LogExtensions.cs" /></div><div>    <Compile Include="..\Microsoft.Build.Utilities\Mono.XBuild.Utilities\MSBuildUtils.cs" /></div><div>    <Compile Include="Microsoft.Build.BuildEngine\UnknownToolsVersionException.cs" /></div>
<div>    <Compile Include="..\..\tools\xbuild\SolutionParser.cs" /></div></div><div><br></div><div><div><ul><li>This didn't scare me too much, since I think what actually gets build are the versioned framework files (2_0, 3_5 and so on), but then why have a Microsoft.Build.Engine.csproj?<br>
</li><li>What I really didn't understand is that I had to change the visibility of UnknownToolsVersionException and some more types from internal to public, since xbuild depends on these (and UnknownToolsVersionException is in the Microsoft.Build.Engine library). This led me to the conclusion that I really don't understand xbuild's build process, since of course when I build Mono it gets built successfully.<br>
</li><li>When looking at the project files, I coul see some files were included on a per Configuration basis, but MonoDevelop showed them all in the tree view no matter what configuration I chose in the IDE. Is this intended behavior?</li>
</ul><div><br></div><div>Sorry for the long email, and thanks in advance.</div><div><br></div></div></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Sep 5, 2013 at 12:13 AM, Alan <span dir="ltr"><<a href="mailto:alan.mcgovern@gmail.com" target="_blank">alan.mcgovern@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hey,<div><br></div><div>The correct thing to do is probably to build the entire mono class libraries first using the normal procedure for building mono on your OS. Once that's done you should not need to modify assembly references in the csproj files. You may need to add missing cs files to the csproj though. </div>

<div><br></div><div>I'm looking forward to your contributions!</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Alan</div></font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Marcelo Zabani<br>(19) 9341-0221<br>
</div>