Andrej Tozon's blog

In the Attic


VS.NET: File-copying projects and referencing all of them from the same project

I've been asked this question a few times in a last couple of months.

Sometimes you want to shorten the time needed to start up a new project for your component by simply copying the files of an existing, possibly similar project you worked on before. While this solution will generally work, you will encounter some problems when referencing both components (the original and the copy) from the same project in the solution. Sure, you've changed the name of the copied project, all of the files, possibly even the namespace your component resides in. But when you try to add a reference to the new component from the main project, already referencing the original component, nothing happens. There's no warning, message box or anything, and your new component just won't show in the references list.

You check the new project's properties, change the assembly name if you haven't done that already [funny thing - if two or more projects in your solution have the same assembly name assigned to them, the solution will compile without any warning, but you will be stuck with only one executable/dll - the one which compiled last].
Now, all project properties seem alright, but VS still refuses to add the new reference. It's because when you copied the project, you also copied its GUID, an unique identifier, by which, evidently, VS keeps track of the projects.

So, in order to get this thing done, you have to create a new GUID and assign it to the new component project. I haven't found any easier solution, so this is what I would do:

1. Generate new GUID: from the VS Tools menu, select item Create GUID - this will bring up a new window, which will help you create a new GUID for your project. In the GUID Format section select the option 4. Registry format. The resulting GUID will be shown in the result section of the window. You can generate new GUID by hitting the New GUID button. When you're fine with the generated number, click the Copy button, which will copy the number to the clipboard.

2. Paste the GUID in the project file: in your favorite text/XML editor, open the .csproj file, which resides in your new project's folder. Find the text ProjectGuid = "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" and replace existing GUID with new by pasting it from the clipboard.

3. Save the file and reopen the solution in VS.

I haven't found any better way to do this but it gives me an idea for a VS plug-in...


Microsoft released the RTM version of Windows XP SP2, which will be available through Windows update/Automatic updates service in the next few days. Because of the size (about 265 MB), you might also consider downloading the package through the TechNet XP2 Site or MSDN Subscriber Downloads.

I guess the most obvious changes you'll notice after installing SP2 will be the new Windows Security Center, improved Firewall and handy pop-up blocker. However, the SP2 focuses on stronger security and better manageability. Microsoft sees it as an essential security update, making this package a required install.

Want to use Messenger services in your application?

Check out the dotMSN Class Library, written in C#, which lets you use the MSN Messenger Service in your own applications. Provided example shows you its basic features, which include (taken from the site):

·        Connecting / disconnecting with the MSN Messenger service
MSNP8 protocol

·        File transfer

·        Fires events when contact go online or offline or change status

·        Automatically synchronizes contact lists and keeps contact data up to date

·        Create/Remove contactgroups

·        Convenient enumerating through contacts in different lists

·        Request or receive conversations

·        Multiple users in one conversation

·        Send messages

·        Received messages include information about font, charset, color, decoration

·        Privacy settings of the contactlist owner

·        Provides hotmail inbox status

·        Error handling

Related: Microsoft releases beta version of web based MSN Messenger – runs in your web browser, no need for client install… Cool!

Microsoft exam 70-301

Microsoft has announced new exam, which targets developers, who use Microsoft Solutions Framework 3.0, is going to beta testing in September 2004. Exam 70-301, titled Managing, Organizing, and Delivering IT Projects by Using the Microsoft Solutions Framework 3.0, will count as an elective to both MCSD (.NET) and MCSE (Windows Server 2003), and passing it would also get you the MCP status.

To pass the exam, you should have solid experience with managing and delivering IT projects, using MSF v3. The requirements cover activities through the whole project lifespan, from organizing the team to deployment of the solution. Recommended are the following courses: 1846: Microsoft Solutions Framework Essentials and 2710: Analyzing Requirements and Defining Microsoft .NET Solution Architectures

Now, if you ever thought of getting to know the MSF in more detail, I think this exam will give you a great opportunity to test your knowledge on the subject and a chance for further study. I for sure will give it a try :)

Ministry in House of the Mol

Ministry released a new album last month. Houses of the Molé brings back the Ministry I once knew in the early 90s, when Psalm 69 was released. Fast, heavy sounding songs, loaded with samples from US president G. W. Bush, shoud easily be recognized as the best work Al Jourgensen has released in years. The political statement seems inevitable, as each of  the songs starts with the letter ‘W’, except  the opening No “W”, which kind of makes the Al’s point. No “W”, mixed with Orff’s Carmina Burana, also makes one of my favorites on this album. All in all, this is a great album, but The Mind is a Terrible Thing to Taste still remains my favorite Ministry CD.

Skinny Puppy, also a great industrial band from the past, have released a new album too. Yet, The Greater Wrong of the Right did not convince me :-(

Looks like the Revolting Cocks are next… Remember Beers, Steers & Queers?

.NET Rocks!

About a decade ago, there was a Visual Basic site, called Carl & Gary's VB Page, which was my regular stop for all my VB projects, information and programming research I was doing back then. Just a couple of months ago I (finally) took a closer look at the .NET Rocks!, to realize, that Carl, the host of this show, is actually THE Carl, who was running that VB page. That site simply rocked. As does the .NET Rocks!, the internet audio show, hosted by Carl and Rory :), originally targeted for .NET developers, but it is so much more. Currently, they are giving away the Toshiba Portégé® M200 Tablet PC, so hurry to enter and win! :)

Roman Holiday

Spent a week in Rome, Italy & enjoyed it. Very much. It was all I expected. Ancient Rome ruins, the catacombs, the Vatican, the Trevi Fountain, … The food is great, coffee excellent :) I found out that there is a considerable price difference in coffee price, when you order it inside (the bar, ~1 EUR) or outside (table, ~3 EUR). The pizza might not always be what you would expect, but the pasta really never disappoints.

VS 2005 Beta 1

Yesterday the net started buzzing... Visual Studio 2005 Beta 1 is released... Express family of VS 2005 products is introduced... MSDN Product Feedback Center is launched... All this revealed on TechEd Europe in Amsterdam.
The Express products are, as it says, »lightweight, easy-to-use, easy-to-learn tools for hobbyists, enthusiasts, and novices who want to build dynamic Windows applications and Web sites.« They are supposedly going to sell very cheap. The family includes VB, C#, C++, J#, WebDev and SQL Server express products.

While waiting to get my hands on its big brother, I gave a C# Express a try. It looks nice, feels good and the included RSS ScreenSaver Starter Kit really puts an extra touch to the package.

Feline Corneal Sequestrum

Today I took my cat (his name is Georgy) to a vet for a surgery. He developed the corneal sequestrum, a kind of an ulcer, on the right eye. This condition seems to be quite common among the Persian, and the cause can't really be determined. It might be the result of some kind of eye irritation, feline herpesvirus, lack of tear production (some cats even sleep with their eyes open, causing the eye to dry) or corneal ulceration.
Although the sequestrum was already very deep, the operation didn't last too long and right now, Georgy is already awake from his anesthetic sleep.
We're having our next visit to the vet's scheduled for the next Monday, when the surgeon is going to remove the stitches. Hopefully, the surgery is going to be a success.