views:

424

answers:

3

Whenever I add a new class to a Visual Studio (C#) project, I get the following usings automatically:

  • using System;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Text;

Additionally, the following DLL references are added if they weren't there already:

  • System.Core
  • System.Data
  • System.Xml

I'd like to prevent VS from doing this (except "using System" of course). Does any one know of a way to prevent this from happening?

+8  A: 

You can change your template files... either by editing the files in the install location, or by writing a class how you want it, and choosing Export Template. There is also a template add-in somewhere...

Marc Gravell
Many many thanks.
Water Cooler v2
+6  A: 

You can create your own customized item templates, see

http://blogs.msdn.com/saraford/archive/2008/10/27/did-you-know-you-can-create-file-or-item-templates-343.aspx

for some details.

Brian
Thanks very much.
Water Cooler v2
+6  A: 

Marc and Brian both have a good idea: create a new custom template that includes only the usings and references I want. With Export Template it's really simple to do so, and I'll be sure to do so for all sorts of specific items.

For general-purpose new classes (ie: what you get from the "Add->Class..." menu item in VS), here's what I did to achieve my goal:

  • Find the appropriate template Zip. On my system it was located at C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class.zip
  • Extract the zip file. This gives two files: Class.cs and Class.vstemplate
  • Edit Class.cs to remove the undesired using statements. (I also changed the default class access modifier to "public" while I was here)
  • Edit Class.vstemplate to remove the undesired <reference> elements.
  • Rezip the files into the existing Class.zip archive
  • Replace the cached template files with the updated versions. On my system, the files were located at C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache\CSharp\Code\1033\Class.zip (a directory containing the old Class.cs and Class.vstemplate).
    • I tried simply deleting this directory, expecting VS to rebuild the cache from the "original" source. This didn't work though; I got an error message saying that it couldn't find the files in the cache directory. Replacing the cached files worked well though.
  • Restart Visual Studio

Now, whenever I add a new class, I get exactly what I want.

Craig Walker
The same general process works for project templates too
Craig Walker
Thanks very much.
Water Cooler v2