Dan Byström’s Bwain

Blog without an interesting name

Visual Studio 2003 Workaround

Posted by Dan Byström on September 27, 2005

Now when we’re all anticipating Visual Studio 2005, it’s time for me to crank out a tip regarding Visual Studio 2003.

If it’s a tip concerning you depends on whether or not you’re among the unfortunate ones like me, who sometimes displeases VS in such a way that it decides to teach me a lesson – by turning most of my Forms and UserControls into regular classes so that they cannot be designed anymore!

If this hasn’t happened to you – you’re among the fortunate ones and I congratulate you. (God’s little pet, right!?)

When this disaster has struck me before I have either resumed from a backup and just moved the latest changed files back into my project, or I have tediously begun to copy the text of each damaged file to the clipboard and then deleted the file from the project, then adding a new one with the same name and finally pasting the code back into place. Not very fun at all.

Now I just discovered that there is a much easier way to recover! I just open the .csproj file in Notepad. There I’ll find XML tags like these:

<File
    RelPath = "controls\vdCalendar.cs"
    SubType = "Code"
    BuildAction = "Compile"
/>
<File
    RelPath = "controls\vdCalendar.resx"
    DependentUpon = "vdCalendar.cs"
    BuildAction = "EmbeddedResource"
/>
<File
    RelPath = "dialogs\FAbout.cs"
    SubType = "Code"
    BuildAction = "Compile"
/>
<File
    RelPath = "dialogs\FAbout.resx"
    DependentUpon = "FAbout.cs"
    BuildAction = "EmbeddedResource"
/>

By walking through the list of files and changing each into the desired “SubType” it is much easier to recover:

<File
    RelPath = "controls\vdCalendar.cs"
    SubType = "UserControl"
    BuildAction = "Compile"
/>
<File
    RelPath = "controls\vdCalendar.resx"
    DependentUpon = "vdCalendar.cs"
    BuildAction = "EmbeddedResource"
/>
<File
    RelPath = "dialogs\FAbout.cs"
    SubType = "Form"
    BuildAction = "Compile"
/>
<File
    RelPath = "dialogs\FAbout.resx"
    DependentUpon = "FAbout.cs"
    BuildAction = "EmbeddedResource"
/>

But then again, I may be the only person alive who can annoy Visual Studio 2003 to this extent in the first place!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: