| Developers > A Couple of Quick Questions about Compiling the SimPE Source | ||
| Zach | ||
Member since: 2006-08-25 Posts: 28 | First, the big question which may make the rest moot: Is the SimPE Visual Studio 2005 friendly? Or rather, has anyone been able to successfully compile it under VS 2005? Backtracking a moment, here's the story. I want to extend the Sim Browser plugin with some additional functionality. So using cvs, I download the fullsimpe module as instructed. A few seconds later, my SimPE project directory is now full of dozens and dozens of different project directories, project files, and project solutions, not to mention several DLLs in the base fullsimpe directory. Where do I start? I think to myself. I first try "./SimPe Main/SimPe Main.sln", but then switch over to "./__Solutions/SimPe.sln". (At first glance, they look to be defining the same solution, so okay.) The first noticeable problem is that many of the projects' references are invalid/missing (EnumComboBox, graphcontrol, Sandbar, sims.guid, etc., etc.). I suppose these are related to the DLLs in the fullsimpe base directory. The other problem, which I am actually embarrassed to ask about, is that the compiler is complaining a lot about various invalid .NET 2.0 references. Yes, I know SimPE was designed for .NET 1.1, and I have both versions installed on my system, so how exactly do I make the SimPE solution reference the 1.1 assemblies and not the newer 2.0 assemblies? Any .NET guru know? | |
| Inge Jones | ||
Member since: 2005-03-06 Posts: 1899 | I don't think Peter's ever been able to compile any of Quaxi's source either, if he wants to use any of it to base a plugin on, he has to rewrite it all. I don't know the technical details. It may be because of Sandock. | |
| Zach | ||
Member since: 2006-08-25 Posts: 28 | Heh... well, that's not encouraging. ![]() And I'm not sure about SandDock. Contrary to quaxi's claim on his About page, it's not free, so I'm a little hesistant to fork out $170 for something I may end up never needing. Besides, I think quaxi does include the needed files--well, he includes the DLLs, and C# doesn't use headers, so I'm just guessing. That's probably just a matter of me manually and painstakingly going through all the projects and correcting the references. The thing I have no clue about is the .NET 2.0 references and how to make the project reference the 1.1 assemblies instead. Oh, well, I guess I'll mess around with it this weekend and try to figure it out on my own. | |
| Inge Jones | ||
Member since: 2005-03-06 Posts: 1899 | I think Peter has installed two versions of Studio, a net 1 and a net 2 version, and does it like that. They compile within their own version of .net | |
| quaxi | ||
Member since: 2006-04-28 Posts: 3154 | Since i wrote the stuff on the frontpage, DivElements has decided to make Sand* commercial, and to no longer distribute the sand*.dlls, which is why so many people have trouble compiling SimPE. I am working on a replacement for Sand*, which should solve that problem. The SimPE Source was converted to VS 2005 since we started to migrate it to .NET 2.0, so that should not be a Problem. The Soulutions from the _Solutions Folder are the ones designed for .NET 2.0, and you should not get anything else (if you checkout HEAD from the CVS), that the .NET 2.0 Source. If you first try to compile SimPE you should open the Everything.sln, and try to compile it. If a referenc is missing (like sandDock), you simply remove it from the Reference List, then right click on the References Item and select Add... . Then go to the location where that .dll can be found on your system (most of the time that would be the place where you installed SimPE to) and add it again. That should get you started. | |
| pljones | ||
Member since: 2005-04-02 From: London, UK Posts: 610 | I shall have a quick moan about Microsoft... There's no reason for .sln files and so on being this difficult to share. They actually support relative paths internally. It's just the IDE insists on writing fully-qualified paths. So, unless you've put everything on your system in exactly the same place as Quaxi has on his, the references don't work. It's stupid. They're all just there! Anyway... I'll have another go, myself, at some point. | |
| Zach | ||
Member since: 2006-08-25 Posts: 28 | quaxi wrote: Since i wrote the stuff on the frontpage, DivElements has decided to make Sand* commercial, and to no longer distribute the sand*.dlls, which is why so many people have trouble compiling SimPE. I suppose you should be very flattered. ![]() Okay, so not to sound obtuse, but it does look like I'm going to need to download and install the SandDock suite to get this to compile, yes? For instance, when trying to rebuild your "Everything" solution, most projects produce various reference errors, so starting at the first one in the dependency list, "SimPe Helper," it's trying to reference an assembly entitled "xpcommoncontrols." Based on name alone, there is no DLL (in the fullsimpe directory) that corresponds to that, or is there? (5 minutes later) Edit: Okay, I guess "xpcommoncontrols" is actually from the steepvalley.net package considering their website states that they are the "home of the XP Common Controls." So dumb question: Is your project self-contained, i.e., did you include the DLLs from steepvalley, or do I need to install their stuff for myself? (And if you did include it, what DLL contains the xpcommoncontrols namespace?)quaxi wrote: The SimPE Source was converted to VS 2005 since we started to migrate it to .NET 2.0, so that should not be a Problem. The Soulutions from the _Solutions Folder are the ones designed for .NET 2.0, and you should not get anything else (if you checkout HEAD from the CVS), that the .NET 2.0 Source. Not to be a literalist, but when you say "checkout HEAD," you just mean the module (or project branch) fullsimpe, right? | |
| quaxi | ||
Member since: 2006-04-28 Posts: 3154 | Zach wrote: Not to be a literalist, but when you say "checkout HEAD," you just mean the module (or project branch) fullsimpe, right? Yes. If you do nothing you get HEAD, but you could also checkout the .NET 1.1 branch, that is why I specifically said HEAD. Sorry for the confusion!! All dlls you need to run/and compile SimPE are included in every Release package. If you do not plan to change the GUI of the Main application with the Designer, you do not need to install Sand* (becaus it would be 2*170$, as you would need sandDock and SandBar). It is enough to tell VS 2005 where to find the sanddock.dll and sandbar.dll to get it to compile. Plus, I plan to get rid of all sand* related GUI elemenst during the 0.59 QA, so even if you plan to edit the main SimPE GUI, I would suggest to simply wait about 2-3 Weeks, which is when I should have removed this stuff. Btw. Downloading the Steepvalley stuff (or Sand*) will not help you getting SimPE compiled, becuase the Versions you would get are different to the ones SimPE is using and might cause other conflicts! I just tested to check out SimPE from the CVS on a fresh installed WinXP, and it did compile fine without having to install Sand* or anything else but VS 2005. So it is just a matter of changing the references to missing .dlls in each available project. All dlls you need should be available in the main SimPE checkout folder (which would be fullsimpe by default) | |
| Zach | ||
Member since: 2006-08-25 Posts: 28 | You say you just tried this on a fresh install of Windows, so just tell me this then, and perhaps all my problems will be solved: Where exactly are you pulling in the xpcommoncontrols and graphcontrol references, to name just two for now? The reason I suspect those are part of your SteepValley installation (at the system level, not project level) is those are two references I have no where on my system, and the error I get when compiling is, naturally, that the SteepValley namespace cannot be found; therefore, the SteepValley namespace must be defined in one (or probably both) of those two components. | |
| quaxi | ||
Member since: 2006-04-28 Posts: 3154 | If the .dlls are not available in the repository, you can get all of them by simply installing SimPE or extracting the 7z from the QA/Public Releases. But you are right of course, that the dlls should be part of the repository. Steepvalley is located in the XPCommonControls.dll, graphcontrol is located in the graphcontrol.dll. Both can be found in the SimPE installation folder. I have added the XPCommonControls.dll to the SVN repository (the CVS rep. is obsolete now. This Tutorial explains how to use the SVN). If you want to build the graphcontrol.dll for you self, you have to compile the controls.sln prior to the everything.sln. That should put a version of that .dll into the __Release Folder of the repository. (If you check out the SVN repository, you should find graphcontrol.dll (and some others you will need as well) in the __Release Folder). All thrid party dlls are located in the main repository folder. | |
viewthread, 0, 0, A-Couple-of-Quick-Questions-about-Compiling-the-SimPE-Source


So dumb question: Is your project self-contained, i.e., did you include the DLLs from steepvalley, or do I need to install their stuff for myself? (And if you did include it, what DLL contains the xpcommoncontrols namespace?)