The Add Reference dialog is not a new one in Visual Studio 2010 Productivity Power Tools, but in this release they updated this dialog with Multi Targeting feature. What is this multi targeting feature? If you are using the new Add Reference dialog of Productivity Power Tools since it was released, you might find that, some dlls are not available there if your project is targeting Client Profile.
This post will discuss about this. Now, using the updated add reference dialog you can see all dlls which are not available in Client Profile framework. This also give you option to add those assemblies in your project. So, let's discuss on it.
Background
If you are new to Productivity Power Tools, you can find some resources here: http://www.kunal-chowdhury.com/search/label/ProductivityPowerTools. If you are new to Add Reference dialog, then the following post will help you to understand it: “Searchable Add Reference” dialog using Visual Studio 2010 Productivity Power Tool.
If you are using the "Add Reference" dialog which was shipped in previous release, you might noticed that, if your application is targeting Client Profile environment, you are not able to find all the assemblies which you want to add. This was due to the the dialog was not supporting multiple framework.
This time Productivity Power Tools includes the multiple framework support and you will see all assembly references in the Add Reference dialog even you are using the client profile. Let us have a short discussion.
In-Depth Discussion
Let's create a project which targets ".Net Framework 3.5 Client Profile" framework. You can verify it in the project properties. If you find it a different one than this, I will suggest you to change it to the same as shown below:
As your project now targeting 3.5 Client Profile runtime, lets right click on the project and click "Add Reference". I assume that, you already installed the extension in your VS2010 IDE and the new dialog is configured.
In the Add Reference dialog, you will now see all the dll assembly references as shown below:
Here you will notice that, some assemblies are in normal color i.e. Black and rest of them are Grayed. The normal text color represents supported dlls for the targeted framework where as, the grayed text represents unsupported framework.
For example, if you want to add any supported dll library, it will add them without any issue, as shown in the below screenshot:
Now, if you want to add an unsupported assembly, which is marked as gray, you will face a little difference now.
Here you will notice that, instead of a green arrow it will show a warning icon just beside the library and it will also show a warning message to you as stated in the below snapshot:
This notifies you that the IDE will change the targeted framework to .Net 3.5. Once you click on the close button, it will produce the below alert message:
Clicking "Yes" will close the solution and mark the project for the .Net Framework 3.5 which it needs to add the reference of the dll assembly. It will then reload the project with the new assembly reference.
To verify, go to the project property panel once again. You will now see the targeted framework is now ".Net Framework 3.5".
Hope this information will help you while working with it. The extension is available freely in Visual Studio Gallery site. Alternatively, you can download it via Visual Studio Extension Manager.
CodeProject