MS Visual C# 2008 express challenge

Feb 5, 2008 at 9:11 PM
Hi everyone,
I am a hobbyist programmer, I have tinkered around with CircleMUD for a few years to teach myself C++, and now would love to get my teeth into TigerMUD for some C# experience.
My first challenge is getting the source to compile with MS Visual C# 2008 express edition which I downloaded the other day..
First and foremost I should probably ask - does this version of Visual C# have everything I need to compile?
Here is what I have been doing:_
downloading the latest source folder (..trunk\tigermud\etc...) unzipping it into my programs folder
double click the Tigermud.sln file
C# 2008 then starts to convert the project, giving the following messages:
"source control provider associated with this solution could not be found"
"do you want to permanently remove the source control bindings from the projects?"
<no>
"some of the properties associated with the solution could not be read."
<ok>
78 errors, 38 warnings..
"(are you missing a using directive or an assembly reference?)"

Any feedback would be greatly appreciated as I know this sort of problem is really something to do with my setup/lack of knowledge!
Thanks guys!
Coordinator
Feb 6, 2008 at 6:41 AM
Welcome, glad you're interested in Tigermud!

Couple of things are probably happening. First is that Express Edition doesn't support Team Explorer integration (or any source control integration that I know of), so source control isn't available in the IDE. The project contains pointers to the source control server that your Express copy cannot read. Only solution is to run source control separately to checkin and out files, which is a pain but is the nature of the free VS versions.

Once you get the code downloaded locally, you should compile correctly. We just had an issue with a single mising .cs file (CastingManager.cs) so please do a "GET" on the source and try to compile again. If you still get errors, please post a few of the first ones you saw in the list and I can get an idea what's wrong.

Cheers!
Adam


Developer
Feb 6, 2008 at 7:01 AM
Done.

Sorry for the delay guys. Added the missing file now.

Anyway, if you have any other concerns/suggestions for the XML (so-so done) and DramaManager (NOT YET DONE, ARGH!) modules, feel free to IM me at Yahoo for a quicker response. :-)

Yahoo: monsterfan86
Coordinator
Feb 6, 2008 at 7:02 AM
Also, here's a chart that shows what features are in which editions of Visual Studio:

http://msdn2.microsoft.com/en-us/vstudio/products/cc149003.aspx

Feb 6, 2008 at 10:18 PM
Thanks for that, after a long think about it (duration: one cup of coffee) I went ahead and downloaded SharpDevelop.
I played around with things for a few hours, installing, re-installing, doing everything but the right thing probably!
I couldn't find the vspostbuild.bat which was referred to in the guide, is that important?
Anyway I tried compiling using SharpDevelop version 2.2 and 1.1
1.1 refused to open VS 2005 projects and I wasn't able to find the ealier #develop version you referenced.
2.2 got pretty close I think - you can jump to the bottom of the post to see where I am up to, I wrote the process I took to get there incase you pick up on something I did wrong or missed out along the way!

Initially upon opening TigerMUD.sln I got about six of the following error:

"Error loading code-completion information for TigerLIB, Version=1.0.2892.25317, Culture=neutral, PublicKeyToken=d92de7829e911efd, processorArchitecture=MSIL from ?:
Could not find assembly file."

I went ahead and did two or three builds and ended up with six errors similar to this one:

"Metadata file 'D:\Programs\trunk\tigermud\output\XMLLevelEditors.dll' could not be found (CS0006)"

I went into the folders (eg: XMLLevelEditors) and opened the project file and built that - which cleared up all those errors.

Now when I build the TigerMUD.sln I am left with:

"Solution target 'TigerMUD_Setup' is invalid. - D:\Programs\trunk\tigermud\TigerMUD.sln:1
Solution target 'TigerMUD_Setup' is invalid. - D:\Programs\trunk\tigermud\TigerMUD.sln:1"

Where would you suggest I go from here?

Ps: I downloaded the 'testonly.msi' and had a quick play on the MUD - very impressed and excited about what I saw, great work!

Feb 7, 2008 at 2:36 AM
Hey its actually working - once I build, the exe is made and it fires up fine regardless of the errors listed above!.. Weird.

So are you guys interested in any of the coding I do?
It'll mostly be real simple tweaks to start off with, but who knows, I might stumble on something noteworthy ;)
Coordinator
Feb 7, 2008 at 11:15 PM
Heya!

Sure thing, we'd love to have you contribute anything that interests you. The more folks participating the better.
Let me know when you're ready to check some code in and I'll get you set up.

Please let me know if you have any questions, thanks!

Adam
Feb 8, 2008 at 12:48 AM
Ok, I'm ready! What do I need to do?

I have Visual Studio and Team Foundation Server ready to go, I will most likely need detailed instructions for checking code in.. Hehe
Coordinator
Feb 8, 2008 at 11:55 PM

Before we get to the checkin part, are you able to connect to the TFS server and check out the source code? If not, you should review this link:
http://www.codeplex.com/CodePlex/Wiki/View.aspx?title=Obtaining%20the%20Team%20Explorer%20Client

and then use this information to connect to our source control repository:

Project Name: tigermud
Username: snd\<your username here>_cp (add an underscope cp to the end of it)
Password: <same as your website password>
Server Name: tfs03.codeplex.com
Port number: 443
Protocol: https

Once this is set up, click View/Team Explorer and use that pane to expand tigermud down to the source control node. Double click source control and you should see the folder heirarchy in the main window. "Trunk" represents the one main copy of the source that we have. If we did another major release, we would create a branch with the release name and then trunk would keep marching forward. But for now there is only one. Right click trunk and choose "Get Specific Version" and on the next screen, make sure "Force get of file versions already in workspace". Then this ensures you get all the files. Now when you edit the files back and forth and do your dev thing, then at the end of the day or whenever you're ready to checkin, you right click the project and choose "Check in pending changes". It shows you a list that is actually bigger than the real list of changed files (a relatively retarded behavior of the TFS client) then at checkin it only checks in the changed files so you're ok.

I don't technically know why you have to tell TFS client to "force get" just to make sure you get all the files, but the reason you do this is that if you've downloaded the source before and then another dev adds some new files, its like your client doesn't see some of the new files and you only get an updated copy of the the files that you already have. I use TortoiseSVN at work and like it pretty well and it behaves more like I would expect, so I am tempted to switch us to it. It also doesn't add all that source control binding crap to your project files. Source control bindings can be a headache later when you can't or don't want to connect to the server and it actually prevents you from opening the source files without many dialogs complaining and asking you if you want to remove source control bindings and such.

Also, if you want to just compile and run the source, you have to checkout the files because otherwise they are all marked read-only and there are files that tigermud requires write access to (logs, db, etc.) and fails with errors galore. Do a checkout first, which removes the read-only attribute on all the source files and things are fine, then later undo pending changes to not checkin what you didn't intend to later. In my alternate fantasy "It just works" dimension, people don't need to check out a file to simply read/write to it. But maybe I'm just getting too old and cranky. :-)

If anyone has strong objections to TortoiseSVN, let me know please. Or if I have a fundamental misunderstanding of how TFS client works, please correct me and improve my quality of dev life in the process.

Cheers!
Adam


Coordinator
Feb 8, 2008 at 11:57 PM
In that last post, I meant to say make sure that you CHECK "Force get of file versions already in workspace" checkbox. I left off the word "check", making it really vague.

Cheers!
Adam
Feb 9, 2008 at 12:48 AM
Edited Feb 9, 2008 at 1:20 AM
It looks like I need some permissions set to allow me to connect , similar to what Soludra mentioned in another discussion.
Its trying to connect but rejecting my username and password.

Regarding the developing, (this is a new and scary concept so I want to make sure I have it right in my head!)

Currently I am free to fiddle with whatever bits and pieces of TigerMUD I like and compile and test on my local maching with my Zmud client because nobody else has to worry that I am crashing it and causing all sorts of grief!..
When I connect to TFS am I still able to do this? Obviously I don't want to cause people trouble in my trial and error learning process.
Am I better to continue developing on my own locally stored source code and then 'submit' things that aren't broken by logging into TFS and putting the code in there? Also if I wanted to go ahead and implement a 'skill based' level system, but you prefer the 'xp based', perhaps I need to have my 'own' MUD locally to do that?
I get the feeling I only have part of the picture here.

ps: feel free to add me to your IM program too! dr_worm_nzAThotmailDOTcom
Developer
Feb 9, 2008 at 12:08 PM
I use SVN at work all the time. It would be awesome if we could move to SVN instead. The only issues it has are with things you won't be using, like branches or odd filesystems on the server.

Yes, I'm still watching, but my Windows PC still has problems so I can't really do anything until I get that sorted out.