Click here to Skip to main content
15,867,765 members
Articles / Visual Studio

Visual Studio 2010 and Target Framework Version

Rate me:
Please Sign up or sign in to vote.
5.00/5 (7 votes)
22 Apr 2010CPOL2 min read 101.3K   5   11
Visual Studio 2010 and target framework version

Almost two years ago, I wrote about a Visual Studio macro that allows you to change the Target Framework version of all projects in a solution. If you don’t know, the Target Framework version is what tells the compiler which version of the .NET Framework to compile against (more information is available hereImage 1) and can be set to one of the following values:

  • .NET Framework 2.0
  • .NET Framework 3.0
  • .NET Framework 3.5
  • .NET Framework 3.5 Client Profile
  • .NET Framework 4.0
  • .NET Framework 4.0 Client Profile

This can be easily accomplished by editing the project properties:

image

The problem with this approach is that if you need to change a lot of projects at one time, it becomes rather unwieldy. One possible solution is to edit the project files by hand in a text editor and change the <TargetFrameworkVersion /> and <TargetFrameworkProfile /> properties to the correct values.

For example, for the .NET Framework 4.0 Client Profile, these values would be:

XML
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>

Again, this is not only time consuming, but can also be error-prone.

The better solution is to automate this through the use of a Visual Studio macro. Since I had already created a macro to do this for Visual Studio 2008, I updated that macro to work with Visual Studio 2010 and .NET 4.0. It prompts you for the target framework version you want to set for all of the projects and then loops through each project in the solution and makes the change. If you select one of the Framework versions that support a Client Profile, it will ask if you want to use the Client Profile or the Full Profile. It is smart enough to skip project types that don’t support this property and projects that are already at the correct version. This version also incorporates the changes suggested by George (in the comments).

The macro is available on my SkyDrive account. Download it to your <UserProfile>\Documents\Visual Studio 2010\Projects\VSMacros80\MyMacros folder, open the Visual Studio Macro IDE (Alt-F11) and add it as an existing item to the “MyMacros” project.

I make no guarantees or warranties on this macro. I have tested it on several solutions and projects and everything seems to work and not cause any problems, but, as always, use with caution. Since it is a macro, you have the full source code available to investigate and see what it’s actually doing. If you find any bugs or make any useful changes, please let me know and I’ll update the macro.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
United States United States
I am a Microsoft C# MVP, author, speaker, blogger, and software developer. I also created the WP Requests and WinStore Requests sites for Windows Phone and Windows Sotre apps as well as several open source projects.

I've been involved with computers in one way or another for as long as I can remember, but started professionally in 1993. Although my primary focus right now is commercial software applications, I prefer building infrastructure components, reusable shared libraries and helping companies define, develop and automate process and code standards and guidelines.

Comments and Discussions

 
QuestionPlease update this page. Pin
Member 836216718-Dec-14 23:21
Member 836216718-Dec-14 23:21 
QuestionNew URL Pin
Scavanger33318-Oct-12 6:10
Scavanger33318-Oct-12 6:10 
QuestionMacro is gone from the live drive? Pin
jeroenp16-Aug-12 2:58
jeroenp16-Aug-12 2:58 
QuestionIs the VS 2008 version of this macro still around? Pin
Jeremy Thomas30-Nov-11 10:01
Jeremy Thomas30-Nov-11 10:01 
GeneralMy vote of 5 Pin
robvon18-Oct-10 15:33
robvon18-Oct-10 15:33 
GeneralPlease post the macro on Code Project Pin
robvon18-Oct-10 15:32
robvon18-Oct-10 15:32 
GeneralMy vote of 5 Pin
jimbucc28-Sep-10 9:30
jimbucc28-Sep-10 9:30 
QuestionStupid Question? Pin
Johnny J.22-Apr-10 20:22
professionalJohnny J.22-Apr-10 20:22 
AnswerRe: Stupid Question? Pin
Scott Dorman23-Apr-10 3:41
professionalScott Dorman23-Apr-10 3:41 
GeneralRe: Stupid Question? Pin
Johnny J.23-Apr-10 6:48
professionalJohnny J.23-Apr-10 6:48 
GeneralRe: Stupid Question? Pin
Scott Dorman23-Apr-10 6:57
professionalScott Dorman23-Apr-10 6:57 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.