I tried building Dawn of Light with version 0.1 of xbuild (the Mono 2.4.2.3 version) and some things would build and some wouldn't. I haven't tried anything from the mono betas (2.6.x) yet, but xbuild is supposed to be a lot better there.
I did have to make some changes to .csproj files in order to make it not complain about missing files. Here's what I had to do:
1. Changed the post-build step in DOLConfig.csproj so that there are separate copy commands for Windows and non-Windows systems.
2. Changed DOLDatabase.csproj so that the case of the included ID Generator code file matched the case of the file on disk (IDGenerator.cs --> IdGenerator.cs) .
3. Changed about 150 filenames where the case of the directory/file didn't match the actual directory/file name (i.e. PlayerCommands --> playercommands).
I've attached the patches to this message. I tested them on Windows and they had no impact on the build process. It would be great if someone would be willing to include them in the trunk.
Here are the results I get with xbuild 0.1 and mono 2.4.2.3:
DOLDatabase: Builds fine (with patch).
DOLBase: Builds fine (no changes needed).
DOLServer: Does not build ("Target named 'Build' not found in the project.") I'm pretty sure this is a bug/shortcoming of the current version of xbuild.
DOLConfig: Builds fine (with patch).
GameServerScripts: Builds fine (no changes needed).
GameServer: Builds fine (with patch).
* Note: For GameServer.csproj I did have to comment out the code in realmabilities/effects/rr5/SelflessDevotionEffect.cs due to this error that I don't know DoL well enough to resolve (I didn't include that change in the patches):
- Code: Select all
realmabilities/effects/rr5/SelflessDevotionEffect.cs(51,111): error CS1502: The best overloaded method match for `System.Collections.Generic.Dictionary<DOL.GS.eProperty,int>.Dictionary(System.Collections.Generic.IEqualityComparer<DOL.GS.eProperty>)' has some invalid arguments
realmabilities/effects/rr5/SelflessDevotionEffect.cs(51,111): error CS1503: Argument `#1' cannot convert `DOL.GS.eProperty' expression to type `System.Collections.Generic.IEqualityComparer<DOL.GS.eProperty>'
Building the 'Dawn of Light.sln' directly turned up a lot more errors (missing references, etc.), but as I understand it, xbuild support for solution files isn't as far along as .csproj file support.