Jaa


What’s new in .NET Framework 4 Client Profile RTM

In .NET Framework 4 we have introduced a streamlined subset and more compact version of the .NET Framework called the Microsoft .NET Framework 4 Client Profile (aka NET4 Client Profile). The Microsoft .NET Framework 4 which is the Full Framework(aka NET4 Full) still exists and it is a superset of the Client Profile.
Hopefully folks have seen Soma’s blog announcing the availability of Visual Studio 2010 , .NET Framework 4 and .NET Framework 4 Client Profile.
I have discussed some of the beta features of Microsoft .NET Framework 4 Client Profile in details in my previous Beta 1 blog and Beta 2 blog posts.  In this post I wanted to highlight some of the key changes from our previous Beta 2 public release and reiterate some of the important features

What are the reasons for a Client Profile?
Although the NET4 Client Profile is smaller and faster to install compared to the NET4 Full Framework (NET4 is 7-8MB smaller in size than the Full Framework), the main reasons are not just better deployment size/time but also:

  • Reduce the Framework deployment failures.
  • By keeping ASP.Net and other components (that are mostly needed for servers) out of the Client Profile, we can reduce the attack surface and the number of future servicing events which may be caused by server component (such as ASP.Net) and are not needed for desktop scenarios.
  • Making NET4 Client Profile available on Windows Update will make sure that most desktop machines will include NET4 Client Profile over time and apps that target the Client Profile will not need to carry or install the Framework which will improve the overall deployment experience.
  • Enable us to add features and grow the size of overall Framework in future versions but still have a smaller core.

When to use NET4 Client Profile and when to use NET4 Full Framework?
NET4 Client Profile:
Always target NET4 Client Profile for all your client desktop applications (including Windows Forms and WPF apps).

NET4 Full framework:
Target NET4 Full only if the features or assemblies that your app need are not included in the Client Profile. This includes:

  • If you are building Server apps. Such as:
    • ASP.Net apps
    • Server-side ASMX based web services
  • If you use legacy client scenarios. Such as:
    • Use System.Data.OracleClient.dll which is deprecated in NET4 and not included in the Client Profile.
    • Use legacy Windows Workflow Foundation 3.0 or 3.5 (WF3.0 , WF3.5)
  • If you targeting developer scenarios and need tool such as MSBuild or need access to design assemblies such as System.Design.dll

How big is Client Profile?
Below are the redistributable download size improvements since NET 3.5 SP1. As you can see we have made significant improvements.
Note that if you are downloading from the Web, the actual download size could be smaller since some components may already be on your machine (for example, Software Rasterizer (rgb9rast) , etc )

 

3.5 SP1

4.0 RTM

32 bit Client Profile

Online: 28 MB Offline: 255MB

28.8 MB

32 + 64 bit Client Profile

N/A

41 MB

32 bit Full

N/A

35.3 MB

32 + 64 bit Full

N/A

48.1 MB

32 + ia64 bit Full

N/A

51.7 MB

32 + 64 + ia64 bit Full

231 MB

N/A

image

What is new in NET4 Client Profile RTM vs. Beta 2 ?

  • File moves: We moved few files between Client Profile to Extended (Full). Most notably:
    Move System.ComponentModel.DataAnnotations.dll from the full framework to Client Profile
    Some additional file moves below.
  • Removed Windows Imaging Components (WIC) from NET4 setup package (Full & Client).
    Since WIC is already included in XP SP3, Vista, Windows 7, and installed with .NET 3.5 SP1 it made sense to remove it and decrease setup size for almost all users that do not need it.
    Folks that need this component (mainly XP SP2/SP1 and Windows 2003 users that do not have NET 3.5 SP1 installed) can install it from here:
    32 bit: https://www.microsoft.com/downloads/details.aspx?FamilyId=8E011506-6307-445B-B950-215DEF45DDD8&displaylang=en
    64-bit: https://www.microsoft.com/downloads/details.aspx?familyid=F64654AC-6E26-41D9-A90A-0E7783B864EE&displaylang=en
    Note that if WIC is missing, NET4 setup will fail.
    We expect that very few machines will require WIC. Some apps that chain-install the NET4 framework may need to either block on WIC or chain-install WIC.
  • Black assemblies:
    These are assemblies that although included in the NET4 Client Profile runtime they are not meant to be used by NET4 Client Profile applications.
    These assemblies are not included in the Reference Assemblies folder and they are not accessible/visible by Visual Studio 2010.
    NET4 currently includes only one such assembly:
    • ISymWrapper
  • Grey APIs:
    These are APIs/namespaces that although included in the NET4 Client Profile runtime they are not supported and not meant to be used by NET4 Client Profile applications. The main reason these assemblies are not supported in the Net4 Client Profile is that they have dependencies on assemblies from NET4 Full so your Client Profile app may crash if you do use them on machines that only have Client Profile installed.
    In RTM, these APIs/namespaces are “grayed out” from the Reference Assemblies and are not accessible/visible in Visual Studio 2010.
    Note that if your app is targeting the NET4 Full you will be able to access these APIs/namespaces.
    In System.Web.Services, the following namespaces are “greyed out” for NET4 Client Profile:
    • System.Web.Services.WebService
    • System.Web.Services.Description.BasicProfileViolation
    • System.Web.Services.Description.BasicProfileViolationCollection
    • System.Web.Services.Description.BasicProfileViolationEnumerator
    • System.Web.Services.Description.ProtocolImporter
    • System.Web.Services.Description.ProtocolReflector
    • System.Web.Services.Description.ServiceDescriptionImporter
    • System.Web.Services.Description.ServiceDescriptionReflector
    • System.Web.Services.Description.SoapExtensionImporter
    • System.Web.Services.Description.SoapExtensionReflector
    • System.Web.Services.Description.SoapProtocolImporter
    • System.Web.Services.Description.SoapTransportImporter
    • System.Web.Services.Description.WebServicesInteroperability
    • System.Web.Services.Discovery.ContractSearchPattern
    • System.Web.Services.Discovery.DiscoveryDocumentLinksPattern
    • System.Web.Services.Discovery.DiscoveryDocumentSearchPattern
    • System.Web.Services.Discovery.DiscoveryRequestHandler
    • System.Web.Services.Discovery.DiscoverySearchPattern
    • System.Web.Services.Discovery.DynamicDiscoveryDocument
    • System.Web.Services.Discovery.ExcludePathInfo
    • System.Web.Services.Discovery.XmlSchemaSearchPattern
    • System.Web.Services.Protocols.HtmlFormParameterReader
    • System.Web.Services.Protocols.MimeParameterReader
    • System.Web.Services.Protocols.ServerProtocol
    • System.Web.Services.Protocols.ServerProtocolFactory
    • System.Web.Services.Protocols.ServerType
    • System.Web.Services.Protocols.SoapServerMessage
    • System.Web.Services.Protocols.SoapServerMethod
    • System.Web.Services.Protocols.SoapServerProtocol
    • System.Web.Services.Protocols.SoapServerProtocolFactory
    • System.Web.Services.Protocols.SoapServerType
    • System.Web.Services.Protocols.UrlParameterReader
    • System.Web.Services.Protocols.ValueCollectionParameterReader
    • System.Web.Services.Protocols.WebServiceHandlerFactory

What is new in Visual Studio 2010 for NET4 Client Profile

Since Beta 2 we made some small but important improvements to the he VS 2010 RTM UI:
(You can read about the changes we in Beta2 in my Beta 2 blog )
  A) Starting with VS 2010 RTM, the “Add Reference” indicates the target framework that assemblies are filtered against.
  B) The VS 2010 RTM toolbox now clearly indicates if 3rd party controls are not available for the selected profile.
image

How to use Client Profile in Visual Studio 2010

Visual Studio 2008 introduced multi-targeting to allow application to target 2.0 and 3.x versions of the .NET Framework. VS 2010 has improved multi-targeting and starting in VS 2010 Beta2 many of the Client projects are targeting the NET4 Client Profile by default. I also discussed this in my Beta 2 blog .

Projects that target NET4 Client Profile by default

These projects starting with VS 20101 Beta2 target the NET4 Client Profile by default:

Windows Project (C# and VB) - WPF Application
- WPF Browser Application
- WPF Custom Control Library
- WPF User Control Library
- Windows Forms Application
- Windows Forms Control Library
- Console Application
- Empty Project
- Window Service

Visual F#
- F# Application
- F# Tutorial

Workflow (C# & VB) - Activity Designer Library
- Activity Library
- Workflow Console Application

WCF (C# & VB) - WCF  Service Library

Office 2007 & 2010 templates (C# & VB) -
All Projects

All other projects, including Class Library, target the Full Framework by default.
Mixed-target scenarios using Class Library may present interesting challenges. Read more below.

How to retarget your C#/VB.Net project

To change targeting of your project, open the project properties, select the "Application" page, and change the “Target framework” drop-down.
C# project example:

image
VB project example (Project Properties > Compile tab > “Advanced Compile Options…”):

image

Note that if you right-click the project and select “Add References”, the dialog shows only the .NET Framework assemblies that are part of the selected profile. This is accomplished by using reference assemblies (metadata-only versions of assemblies). The .NET Framework 4 Client Profile Reference Assemblies are located in:
     %programfiles%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client

At compile time, the reference assemblies are matched up against the known "Client List" assemblies that are included in the Client Profile. If a project targeting the Client Profile has a reference to a .NET assembly that is not included in the "Client List", Visual Studio displays compile-time errors in the Error List.

How to change targeting for other projects

Some other VS 2010 projects such as Managed C++ (C++/CLI) still target the Full Framework by default. VS 2010 unfortunately does not provide UI to change the targeting.
Fortunately, you can still edit the project file manually in order to change the profile targeting. To do so:
a) Right click “Unload Project”
b) Right-Click “Edit <project_name>”
c) Set the appropriate project property to target Client Profile. e.g.

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

d) Right click “Reload Project”

In addition, for these projects, notice that VS does not create an <app.config> file for your project.
Note: If your project does not add references or access assemblies that are included in the Full Framework but are not part of the Client Profile, there is nothing to worry about. Your app will run on machines with either NET4 Client Profile or Full Framework just fine.
Otherwise, if you do access assemblies from the Full Framework, you should add <app.config> to indicate to CLR not to load your app if it is launched on the NET4 Client Profile.
E.g. add this:

<?xml version="1.0"?>
<configuration>
    <startup>
          <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
   </startup>
</configuration>

If you don’t do so, your app may crash at random when it needs to load the assemblies that are missing from the Client Profile.

Deployment

The project Publish property page allows you to select the prerequisite needed for your ClickOnce deployment. VS 2010 automatically selects the correct profile (Client Profile or Full) depending on your primary project target.
image 

Setup and Deployment Projects

The same prerequisite dialog from above appears when you create “Setup and Deployment” project (under “Add New Project”/“Other Project Types”). The NET4 Client Profile prerequisite entry is checked by default in this case.


 
If you create a new “Visual Studio Installer” setup project (under “Setup and Deployment“) and add the output of your NET4 Client Profile to it (Right-Click ->“Add”-> “Project Output…”’ select “Primary output”) , VS2010 adds a new “Launch Condition”. (Right-click on your new Setup project and then do “View->Launch Conditions”)

By default VS2010 will add NET4 Client Profile as a launch condition.

What this means is that once all prerequisites are installed and before the main installation launches, setup checks whether all the launch conditions are met. If not, setup blocks and displays an error message.

clip_image010
image

Testing NET4 Client Profile applications
VS 2010 itself requires the NET 4 Full in order to run and it therefore install NET 4 Full.
If your target NET4 Client Profile,it is highly recommended that youtest your application on a separate machine that only includes NET4 Client Profile.

Common Questions & Issues with NET4 Client Profile 1. How can I select the .NET Profile in the “New Project” dialog?
When you create new project in VS 2010, the “New Project” dialog does not indicate if the new project you are about to create is targeting Client Profile or Full. You can always go to the project Properties (see above) and change the target if you like.

2.  
I cannot find an assembly in “Add Reference” dialog The “Add Reference” .NET tab dialog only shows the .NET Framework assemblies that are part of the selected profile. So some assemblies, such as System.Web.dll are not included in NET4 Client Profile and will only show if you target the Full framework. If you must use System.Web.dll you need to retarget to the Full framework.
Starting with VS 2010 RTM, the “Add Reference” indicates the target framework that assemblies are filtered against.clip_image014
3.  
My project cannot compile when I reference a Class Library You may encounter mixed-target scenarios: for example, when your Client Profile app adds a reference to a Class Library that is targeting the Full Framework (which it targets by default). You should be able to successfully build such solutions, as long as the Class Library does not use references to assemblies that only exist in the Full Framework. If it does, you may get warning/errors that are not completely clear.

For example you may see an error in your Client Profile app saying:
“The type or namespace name 'ClassLibrary1' could not be found (are you missing a using directive or an assembly reference?)”

This error is not clear because the class library exists and can be compiled when it is compiled by itself. However, when MSBuild tries to resolve the transitive closure of the Client Profile project, it cannot find the Full Framework assembly that is referenced by the Class Library. In this case it is better to look at the generated warnings which are more informative:
“The referenced assembly " …<your assembly>.." could not be resolved because it has a dependency on ""…<some assembly only available in Full Framework>…” which is not in the currently targeted framework ".NETFramework,Version=v4.0,Profile=Client". Please remove references to assemblies not in the targeted framework or consider retargeting your project.”

4.  
My controls or 3rd party controls is now showing in the VS 2010 toolbox Some VS 2008 3rd party Winforms controls will not work with VS 2010 NET4 Client Profile projects.
The reason is that some of these controls have do not have separate design-time and run-time components and have dependencies on assemblies that are in the Full Framework (for example dependency on System.Windows.Forms.Design.dll which is Full).
In VS 2010 RTM we made some changes to make it easier for developers to realize that.

Per the image below you can see that the VS 2008 DevExpress Winforms control are not showing in VS 2010 Toolbox and instead you see the message “Controls in this category are unavailable for the .NET Framework 4 Client Profile. To change this setting, open the Project Properties windows.”
The Xceed VS 2008 controls on the other hand do have separate design-time and run-time components and works fine in VS 2008 and VS 2010.
The good news is that many of the control vendors plan to release update to their control soon after VS 2010 RTM. Until such updates are available you need to retarget your project to NET4 Full if you must use these controls.

image 
5.  
What should I do if a component that I need is not in NET4 Client Profile? Your first option is to try to find a workaround by modifying your code to use a component that is included in NET4 Client Profile. If this is not possible retarget your project to NET4 Full. As mentioned before, this is not ideal as most desktops are ikely to only have NET4 Client Profile so your app would need to chain-install NET4 full or block your app setup on NET4 full being present.

6. I want to write a custom WinForms control, what do I need to do for it to work with NET4 Client Profile?
When developing Windows Forms control libraries, it is necessary to separate the runtime code from the control designers in order to target the new Client Profile. If the assembly references classes that exist in the Full framework but not in the Client Profile, the project will not compile successfully. Custom control designers usually inherit from the System.Windows.Forms.Design.ControlDesigner class in System.Design.dll, which is not included in .Net Framework 4 Client Profile.

We posted a guide that can walk you through the steps of creating a Windows Forms control that can be used in the .NET Framework 4 Client Profile. See: https://code.msdn.microsoft.com/WinFormsCustomCtrl
Note that WPF custom controls do not inherit from classes in System.Design.dll and do not have this issue.

7. What’s the deal with <app.config> file ?
If you change the project to target the Full Framework, VS will add a configuration file (<app.config>) that declares the application as a "full" application.
image

This enables the CLR loader to block any NET4 apps that target full on machines that only have the Client Profile. In this case, the CLR prompts the user to install NET4 full. E.g. you may see this dialog:

image 
Note that in NET4 Beta1 and NET3.5 SP1 Client Profile if the <app.config> was missing the CLR the assumption was that you targeted the Full Framework. This is now reversed.
In other words, if your NET4 app is missing <app.config> , by default the CLR assume that your app is targeting NET4 Client Profile! so, your app may crash at random when it needs to load the assemblies that

What components are new in NET4 Client Profile RTM?

This has not significantly changed since Beta2, so read my Beta 2 blog. We did make some tweaks however in RTM (and RC), most notably:

  • Developers who need to use System.Web.HttpUtility in their client apps and had to reference System.Web.dll and therefore target NET4 full (System.Web.dll is in Full) , can now target the NET4 Client Profile by using the new System.Net.WebUtility class which is in System.dll (System.dll is in NET4 Client Profile).
    System.Net.WebUtility includes HtmlEncode and HtmlDecode. Url encoding can be accomplished using the System.Uri class (also in System.dll).
  • Files moved from Client to Extended (Full):
      - csc.rsp and vbc.rsp
  • Files moved from Extended (Full) to Client:
      - System.ComponentModel.DataAnnotations.dll
      - Microsoft.CSharp.Resources.dll and System.Dynamic.Resources.dll
      - InstallUtil.exe, Installutil.exe.config and InstallUtillib.dll

Enhancements in NET4 Client Profile vs. NET 3.5 SP1 Client Profile
This has not changed since Beta2, so read my Beta 2 blog .

What’s in and what’s not included in the Client Profile?
Other than the APIs that were “Grey” out in RTM (and RC) and the tweaks mentioned above, we did not make other significantly changes since Beta2, so read my Beta 2 blog.

Where can I get the NET4 Client Profile?
You can get .NET Framework 4 from here:

  • dotNetFx40_Client_x86_x64.exe (41 MB): This is the Client Profile SKU that you must install on any supported 64-bit OS. This will also install on any supported 32-bit OS. Your app could run in WOW64 if it was compiled w/ "32-bit" flag or as 64-bit if you compile with "AnyCPU" or "64-bit" flags.
    If you are redistributing the Client Profile with your application you most likely want to redist this package as it can install on both 32 and 64 bit OS’s.
  • dotNetFx40_Client_x86.exe (28.8 MB): This is the Client Profile SKU that you could use to install on any supported 32-bit OS.  Choose this only if all your users are running 32 bit OS. (in most times this will not be your case…)
  • dotNetFx40_Full_x86_x64.exe (48.1 MB): This is the Full Framework SKU that you must install on any supported 64-bit OS. This will also install on any supported 32-bit OS.
    If you are redistributing the Full Framework with your application you most likely want to redist this package as it can install on both 32 and 64 bit OS’s.
  • dotNetFx40_Full_x86.exe (35.3 MB): This is the Full Framework SKU that you could use to install on any supported 32-bit OS. Choose this only if all your users are running 32 bit OS (in most times this will not be your case…)
  • NET 4 RTM Web Bootstrapper: This is what you want to install if you need NET4 Full and you are online. This will detect your OS and processor architecture and will install the appropriate Framework.
  • NET 4 Client Profile RTM Web Bootstrapper: This is what you want to install if you need NET4 Client Profile and you are online. This will detect your OS and processor architecture and will install the appropriate Client Profile.

Related Blogs and Resources

Appendix A:

Here are the files that exist in the NET4 Client Profile and NET4 Full framework.

FileName

Client Profile

or Extended

Description

_DataPerfCounters.h

Client

Perf counters

_DataPerfCounters.ini

Client

Perf counters

_dataperfcounters_shared12_neutral.h

Client

Perf counters

_dataperfcounters_shared12_neutral.ini

Client

Perf counters

_NetworkingPerfCounters.h

Client

Perf counters

_Networkingperfcounters.ini

Client

Perf counters

_NetworkingPerfCounters_v2.h

Client

Perf counters

_NetworkingPerfCounters_v2.ini

Client

Perf counters

_ServiceModelEndpointPerfCounters.h

Client

Perf counters

_ServiceModelEndpointPerfCounters.ini

Client

Perf counters

_ServiceModelOperationPerfCounters.h

Client

Perf counters

_ServiceModelOperationPerfCounters.ini

Client

Perf counters

_ServiceModelServicePerfCounters.h

Client

Perf counters

_ServiceModelServicePerfCounters.ini

Client

Perf counters

_SMSvcHostPerfCounters.h

Client

Perf counters

_SMSvcHostPerfCounters.ini

Client

Perf counters

_TransactionBridgePerfCounters.h

Client

Perf counters

_TransactionBridgePerfCounters.ini

Client

Perf counters

Accessibility.dll

Client

AddInProcess.exe

Client

AddInProcess.exe.config

Client

AddInProcess32.exe

Client

AddInProcess32.exe.config

Client

AddInUtil.exe

Client

AddInUtil.exe.config

Client

AdoNetDiag.dll

Client

adonetdiag.mof

Client

adonetdiag.mof.uninstall

Client

alink.dll

Client

alinkui.dll

Client

AppLaunch.exe

Client

applaunch.exe.config

Client

AssemblyList_4_client.xml

Client

CasPol.exe

Client

caspol.exe.config

Client

clr.dll

Client

CLR.mof

Client

CLR.mof.uninstall

Client

clrjit.dll

Client

CORPerfMonExt.dll

Client

CORPerfMonSymbols.h

Client

corperfmonsymbols.ini

Client

csc.exe

Client

csc.exe.config

Client

cscui.dll

Client

Culture.dll

Client

CustomMarshalers.dll

Client

cvtres.exe

Client

cvtres.exe.config

Client

CvtResUI.dll

Client

default.win32manifest

Client

dfdll.dll

Client

dfsvc.exe

Client

dfsvc.exe.config

Client

diasymreader.dll

Client

DropSqlWorkflowInstanceStoreLogic.sql

Client

DropSqlWorkflowInstanceStoreSchema.sql

Client

dw20.exe

Client

EventLogMessages.dll

Client

fusion.dll

Client

GlobalMonospace.CompositeFont

Client

WPF Composite fonts

GlobalSansSerif.CompositeFont

Client

WPF Composite fonts

GlobalSerif.CompositeFont

Client

WPF Composite fonts

GlobalUserInterface.CompositeFont

Client

WPF Composite fonts

InstallUtil.exe

Client

Moved to Client in RTM

installutil.exe.config

Client

Moved to Client in RTM

InstallUtilLib.dll

Client

Moved to Client in RTM

ISymWrapper.dll

Client

jsc.exe

Client

jsc.exe.config

Client

locale.nlp

Client

machine.config

Client

machine.config.comments

Client

machine.config.default

Client

Microsoft.CSharp.dll

Client

Microsoft.JScript.dll

Client

Microsoft.JScript.tlb

Client

Microsoft.Transactions.Bridge.dll

Client

Microsoft.Transactions.Bridge.Dtc.dll

Client

Microsoft.VisualBasic.Activities.Compiler.dll

Client

Microsoft.VisualBasic.Activities.CompilerUI.dll

Client

Microsoft.VisualBasic.Compatibility.Data.dll

Client

Microsoft.VisualBasic.Compatibility.dll

Client

Microsoft.VisualBasic.dll

Client

Microsoft.VisualC.Dll

Client

Microsoft.Windows.ApplicationServer.Applications.dll

Client

Microsoft.Windows.ApplicationServer.Applications.dll.mui

Client

Microsoft.Windows.ApplicationServer.Applications.man

Client

mscordacwks.dll

Client

mscordbi.dll

Client

mscoree.tlb

Client

mscoreei.dll

Client

mscoreeis.dll

Client

mscorlib.dll

Client

mscorlib.tlb

Client

mscorpe.dll

Client

mscorpehost.dll

Client

mscorrc.dll

Client

mscorsecimpl.dll

Client

mscorsecr.dll

Client

mscorsvc.dll

Client

mscorsvw.exe

Client

msvcr100_clr0400.dll

Client

NaturalLanguage6.dll

Client

NETFXRepair.1025.dll

Client

Resource files for .NET OS upgrade repair.

NETFXRepair.1028.dll

Client

NETFXRepair.1029.dll

Client

NETFXRepair.1030.dll

Client

NETFXRepair.1031.dll

Client

NETFXRepair.1032.dll

Client

NETFXRepair.1033.dll

Client

NETFXRepair.1035.dll

Client

NETFXRepair.1036.dll

Client

NETFXRepair.1037.dll

Client

NETFXRepair.1038.dll

Client

NETFXRepair.1040.dll

Client

NETFXRepair.1041.dll

Client

NETFXRepair.1042.dll

Client

NETFXRepair.1043.dll

Client

NETFXRepair.1044.dll

Client

NETFXRepair.1045.dll

Client

NETFXRepair.1046.dll

Client

NETFXRepair.1049.dll

Client

NETFXRepair.1053.dll

Client

NETFXRepair.1055.dll

Client

NETFXRepair.2052.dll

Client

NETFXRepair.2070.dll

Client

NETFXRepair.3076.dll

Client

NETFXRepair.3082.dll

Client

NETFXRepair.exe

Client

ngen.exe

Client

NlsData0009.dll

Client

NlsLexicons0009.dll

Client

nlssorting.dll

Client

normalization.dll

Client

normidna.nlp

Client

normnfc.nlp

Client

normnfd.nlp

Client

normnfkc.nlp

Client

normnfkd.nlp

Client

PenIMC.dll

Client

PerfCounter.dll

Client

PresentationCore.dll

Client

PresentationFramework.Aero.dll

Client

PresentationFramework.Classic.dll

Client

PresentationFramework.dll

Client

PresentationFramework.Luna.dll

Client

PresentationFramework.Royale.dll

Client

PresentationHost_v0400.dll

Client

PresentationHost_v0400.dll.mui

Client

PresentationNative_v0400.dll

Client

PresentationUI.dll

Client

ReachFramework.dll

Client

RegAsm.exe

Client

regasm.exe.config

Client

RegSvcs.exe

Client

regsvcs.exe.config

Client

regtlibv12.exe

Client

SbsNclPerf.dll

Client

ServiceModel.mof

Client

ServiceModel.mof.uninstall

Client

ServiceModel35.mof

Client

ServiceModel35.mof.uninstall

Client

ServiceModelEvents.dll

Client

ServiceModelEvents.dll.mui

Client

ServiceModelInstallRC.dll

Client

ServiceModelInstallRC.dll.mui

Client

ServiceModelPerformanceCounters.dll

Client

ServiceModelPerformanceCounters.dll.mui

Client

ServiceModelPerformanceCounters.man

Client

ServiceModelReg.exe

Client

ServiceModelRegUI.dll

Client

ServiceModelRegUI.dll.mui

Client

SetupUtility.exe

Client

SMDiagnostics.dll

Client

SMSvcHost.exe

Client

SMSvcHost.exe.config

Client

sortdefault.nlp

Client

SOS.dll

Client

SqlWorkflowInstanceStoreLogic.sql

Client

SqlWorkflowInstanceStoreSchema.sql

Client

sysglobl.dll

Client

System.Activities.Core.Presentation.dll

Client

System.Activities.dll

Client

System.Activities.DurableInstancing.dll

Client

System.Activities.Presentation.dll

Client

System.AddIn.Contract.dll

Client

System.AddIn.dll

Client

System.ComponentModel.Composition.dll

Client

System.ComponentModel.DataAnnotations.dll

Client

Moved to Client in RC

System.configuration.dll

Client

System.Configuration.Install.dll

Client

System.Core.dll

Client

System.Data.DataSetExtensions.dll

Client

System.Data.dll

Client

System.Data.Entity.dll

Client

System.Data.Linq.dll

Client

System.Data.Services.Client.dll

Client

System.Data.SqlXml.dll

Client

System.Deployment.dll

Client

System.Device.dll

Client

System.DirectoryServices.AccountManagement.dll

Client

System.DirectoryServices.dll

Client

System.DirectoryServices.Protocols.dll

Client

System.dll

Client

System.Drawing.dll

Client

System.Drawing.tlb

Client

System.Dynamic.dll

Client

System.EnterpriseServices.dll

Client

System.EnterpriseServices.Thunk.dll

Client

System.EnterpriseServices.tlb

Client

System.EnterpriseServices.Wrapper.dll

Client

System.IdentityModel.dll

Client

System.IdentityModel.Selectors.dll

Client

System.IO.Log.dll

Client

System.Management.dll

Client

System.Management.Instrumentation.dll

Client

System.Messaging.dll

Client

System.Net.dll

Client

System.Numerics.dll

Client

System.Printing.dll

Client

System.Runtime.DurableInstancing.dll

Client

System.Runtime.Remoting.dll

Client

System.Runtime.Serialization.dll

Client

System.Runtime.Serialization.Formatters.Soap.dll

Client

System.Security.dll

Client

System.ServiceModel.Activities.dll

Client

System.ServiceModel.Channels.dll

Client

System.ServiceModel.Discovery.dll

Client

System.ServiceModel.dll

Client

System.ServiceModel.Routing.dll

Client

System.ServiceProcess.dll

Client

System.Speech.dll

Client

System.tlb

Client

System.Transactions.dll

Client

System.Web.ApplicationServices.dll

Client

System.Web.Services.dll

Client

System.Windows.Forms.DataVisualization.dll

Client

System.Windows.Forms.dll

Client

System.Windows.Forms.tlb

Client

System.Windows.Input.Manipulations.dll

Client

System.Windows.Presentation.dll

Client

System.Xaml.dll

Client

System.XML.dll

Client

System.Xml.Linq.dll

Client

UIAutomationClient.dll

Client

UIAutomationClientsideProviders.dll

Client

UIAutomationProvider.dll

Client

UIAutomationTypes.dll

Client

vbc.exe

Client

vbc.exe.config

Client

vbc7ui.dll

Client

WindowsBase.dll

Client

WindowsFormsIntegration.dll

Client

WMINet_Utils.dll

Client

wpffontcache_v0400.exe

Client

wpffontcache_v0400.exe.mui

Client

wpfgfx_v0400.dll

Client

wpftxt_v0400.dll

Client

XPThemes.manifest

Client

_DataOracleClientPerfCounters_shared12_neutral.h

Extended

_DataOracleClientPerfCounters_shared12_neutral.ini

Extended

addUser.aspx

Extended

addUser.aspx.resx

Extended

alert_lrg.gif

Extended

AppConfigCommon.resx

Extended

AppConfigHome.aspx

Extended

AppConfigHome.aspx.resx

Extended

ApplicationConfigurationPage.cs

Extended

AppSetting.ascx

Extended

AppSetting.ascx.resx

Extended

ASPdotNET_logo.jpg

Extended

Aspnet.config

Extended

aspnet.mof

Extended

aspnet.mof.uninstall

Extended

aspnet_compiler.exe

Extended

aspnet_counters.dll

Extended

aspnet_filter.dll

Extended

aspnet_isapi.dll

Extended

Aspnet_perf.dll

Extended

aspnet_perf.h

Extended

aspnet_perf.ini

Extended

aspnet_perf2.ini

Extended

aspnet_rc.dll

Extended

aspnet_regbrowsers.exe

Extended

aspnet_regiis.exe

Extended

aspnet_regsql.exe

Extended

aspnet_state.exe

Extended

aspnet_state_perf.h

Extended

aspnet_state_perf.ini

Extended

aspnet_wp.exe

Extended

AspNetMMCExt.dll

Extended

aspx_file.gif

Extended

AssemblyList_4_extended.xml

Extended

blackberry.browser

Extended

branding_Full2.gif

Extended

chooseProviderManagement.aspx

Extended

chooseProviderManagement.aspx.resx

Extended

chrome.browser

Extended

CLR-ETW.man

Extended

clretwrc.dll

Extended

ComSvcConfig.exe

Extended

confirmation.ascx

Extended

confirmation.ascx.resx

Extended

CreateAppSetting.aspx

Extended

CreateAppSetting.aspx.resx

Extended

createPermission.aspx

Extended

createPermission.aspx.resx

Extended

csc.rsp

Extended

 

darkBlue_GRAD.jpg

Extended

 

DataSvcUtil.exe

Extended

 

DataSvcUtil.exe.config

Extended

 

DebugAndTrace.aspx

Extended

 

DebugAndTrace.aspx.resx

Extended

 

default.aspx

Extended

 

default.aspx.resx

Extended

 

Default.browser

Extended

 

DefaultWsdlHelpGenerator.aspx

Extended

 

DefineErrorPage.aspx

Extended

 

DefineErrorPage.aspx.resx

Extended

 

deselectedTab_1x1.gif

Extended

 

DropSqlPersistenceProviderLogic.sql

Extended

 

DropSqlPersistenceProviderSchema.sql

Extended

 

dv_aspnetmmc.chm

Extended

 

EditAppSetting.aspx

Extended

 

EditAppSetting.aspx.resx

Extended

 

editUser.aspx

Extended

 

editUser.aspx.resx

Extended

 

EdmGen.exe

Extended

 

error.aspx

Extended

 

error.aspx.resx

Extended

 

FileTracker.dll

Extended

 

FileTrackerUI.dll

Extended

 

findUsers.aspx

Extended

 

findUsers.aspx.resx

Extended

 

firefox.browser

Extended

 

folder.gif

Extended

 

gateway.browser

Extended

 

generic.browser

Extended

 

GlobalResources.resx

Extended

 

gradient_onBlue.gif

Extended

 

gradient_onWhite.gif

Extended

 

GroupedProviders.xml

Extended

 

headerGRADIENT_Tall.gif

Extended

 

help.jpg

Extended

 

HelpIcon_solid.gif

Extended

 

home0.aspx

Extended

 

home0.aspx.resx

Extended

 

home1.aspx

Extended

 

home1.aspx.resx

Extended

 

home2.aspx

Extended

 

home2.aspx.resx

Extended

 

ie.browser

Extended

 

iemobile.browser

Extended

 

ilasm.exe

Extended

 

ilasm.exe.config

Extended

 

image1.gif

Extended

 

image2.gif

Extended

 

InstallCommon.sql

Extended

 

InstallMembership.sql

Extended

 

InstallPersistSqlState.sql

Extended

 

InstallPersonalization.sql

Extended

 

InstallProfile.SQL

Extended

 

InstallRoles.sql

Extended

 

InstallSqlState.sql

Extended

 

InstallSqlStateTemplate.sql

Extended

 

InstallWebEventSqlProvider.sql

Extended

 

iPhone.browser

Extended

 

legacy.web_hightrust.config

Extended

 

legacy.web_hightrust.config.default

Extended

 

legacy.web_lowtrust.config

Extended

 

legacy.web_lowtrust.config.default

Extended

 

legacy.web_mediumtrust.config

Extended

 

legacy.web_mediumtrust.config.default

Extended

 

legacy.web_minimaltrust.config

Extended

 

legacy.web_minimaltrust.config.default

Extended

 

manageAllRoles.aspx

Extended

 

manageAllRoles.aspx.resx

Extended

 

ManageAppSettings.aspx

Extended

 

ManageAppSettings.aspx.resx

Extended

 

ManageConsolidatedProviders.aspx

Extended

 

manageconsolidatedProviders.aspx.resx

Extended

 

managePermissions.aspx

Extended

 

managePermissions.aspx.resx

Extended

 

ManageProviders.aspx

Extended

 

manageProviders.aspx.resx

Extended

 

manageSingleRole.aspx

Extended

 

manageSingleRole.aspx.resx

Extended

 

manageUsers.aspx

Extended

 

manageUsers.aspx.resx

Extended

 

Microsoft.Build.Commontypes.xsd

Extended

 

Microsoft.Build.Conversion.v4.0.dll

Extended

 

Microsoft.Build.Core.xsd

Extended

 

Microsoft.Build.dll

Extended

 

Microsoft.Build.Engine.dll

Extended

 

Microsoft.Build.Framework.dll

Extended

 

Microsoft.Build.Tasks.v4.0.dll

Extended

 

Microsoft.Build.Utilities.v4.0.dll

Extended

 

Microsoft.Build.xsd

Extended

 

Microsoft.Common.OverrideTasks

Extended

 

Microsoft.Common.targets

Extended

 

Microsoft.Common.Tasks

Extended

 

Microsoft.CSharp.targets

Extended

 

Microsoft.Data.Entity.Build.Tasks.dll

Extended

 

Microsoft.Data.Entity.targets

Extended

 

Microsoft.NetFramework.props

Extended

 

Microsoft.NetFramework.targets

Extended

 

Microsoft.VisualBasic.targets

Extended

 

Microsoft.VisualC.STLCLR.dll

Extended

 

Microsoft.WinFx.targets

Extended

 

Microsoft.Workflow.Compiler.exe

Extended

 

Microsoft.Workflow.Compiler.exe.config

Extended

 

Microsoft.Xaml.targets

Extended

 

MmcAspExt.dll

Extended

 

MSBuild.exe

Extended

 

msbuild.exe.config

Extended

 

MSBuild.rsp

Extended

 

mscorsn.dll

Extended

 

navigationBar.ascx

Extended

 

navigationBar.ascx.resx

Extended

 

NavigationBar.cs

Extended

 

NetFx40_IIS_schema_update.xml

Extended

 

netmemorycache.h

Extended

 

netmemorycache.ini

Extended

 

opera.browser

Extended

 

PasswordValueTextBox.cs

Extended

 

PerfCounters.h

Extended

 

PerfCounters.ini

Extended

 

peverify.dll

Extended

 

PresentationBuildTasks.dll

Extended

 

ProviderList.ascx

Extended

 

providerList.ascx.resx

Extended

 

ProvidersPage.cs

Extended

 

requiredBang.gif

Extended

 

safari.browser

Extended

 

security.aspx

Extended

 

security.aspx.resx

Extended

 

security_watermark.jpg

Extended

 

security0.aspx

Extended

 

security0.aspx.resx

Extended

 

SecurityPage.cs

Extended

 

selectedTab_1x1.gif

Extended

 

selectedTab_leftCorner.gif

Extended

 

selectedTab_rightCorner.gif

Extended

 

ServiceMonikerSupport.dll

Extended

 

setUpAuthentication.aspx

Extended

 

setUpAuthentication.aspx.resx

Extended

 

SharedReg12.dll

Extended

 

SmtpSettings.aspx

Extended

 

SmtpSettings.aspx.resx

Extended

 

SqlPersistenceProviderLogic.sql

Extended

 

SqlPersistenceProviderSchema.sql

Extended

 

SqlPersistenceService_Logic.sql

Extended

 

SqlPersistenceService_Schema.sql

Extended

 

System.Data.Entity.Design.dll

Extended

 

System.Data.OracleClient.dll

Extended

 

System.Data.Services.Design.dll

Extended

 

System.Data.Services.dll

Extended

 

System.Design.dll

Extended

 

System.Drawing.Design.dll

Extended

 

System.Runtime.Caching.dll

Extended

 

System.ServiceModel.Activation.dll

Extended

 

System.ServiceModel.ServiceMoniker40.dll

Extended

 

System.ServiceModel.WasHosting.dll

Extended

 

System.ServiceModel.Web.dll

Extended

 

System.Web.Abstractions.dll

Extended

 

System.Web.DataVisualization.Design.dll

Extended

 

System.Web.DataVisualization.dll

Extended

 

System.Web.dll

Extended

 

System.Web.DynamicData.Design.dll

Extended

 

System.Web.DynamicData.dll

Extended

 

System.Web.Entity.Design.dll

Extended

 

System.Web.Entity.dll

Extended

 

System.Web.Extensions.Design.dll

Extended

 

System.Web.Extensions.dll

Extended

 

System.Web.Mobile.dll

Extended

 

System.Web.RegularExpressions.dll

Extended

 

System.Web.Routing.dll

Extended

 

System.Web.tlb

Extended

 

System.Windows.Forms.DataVisualization.Design.dll

Extended

 

System.Workflow.Activities.dll

Extended

 

System.Workflow.ComponentModel.dll

Extended

 

System.Workflow.Runtime.dll

Extended

 

System.WorkflowServices.dll

Extended

 

System.Xaml.Hosting.dll

Extended

 

TLBREF.DLL

Extended

 

topGradRepeat.jpg

Extended

 

Tracking_Logic.sql

Extended

 

Tracking_Schema.sql

Extended

 

UninstallCommon.sql

Extended

 

UninstallMembership.sql

Extended

 

UninstallPersistSqlState.sql

Extended

 

UninstallPersonalization.sql

Extended

 

UnInstallProfile.SQL

Extended

 

UninstallRoles.sql

Extended

 

UninstallSqlState.sql

Extended

 

UninstallSqlStateTemplate.sql

Extended

 

UninstallWebEventSqlProvider.sql

Extended

 

unSelectedTab_leftCorner.gif

Extended

 

unSelectedTab_rightCorner.gif

Extended

 

vbc.rsp

Extended

 

web.config

Extended

 

web.config.comments

Extended

 

web.config.default

Extended

 

web_hightrust.config

Extended

 

web_hightrust.config.default

Extended

 

web_lowtrust.config

Extended

 

web_lowtrust.config.default

Extended

 

web_mediumtrust.config

Extended

 

web_mediumtrust.config.default

Extended

 

web_minimaltrust.config

Extended

 

web_minimaltrust.config.default

Extended

 

webAdmin.master

Extended

 

webAdminButtonRow.master

Extended

 

WebAdminHelp.aspx

Extended

 

WebAdminHelp.aspx.resx

Extended

 

WebAdminHelp_Application.aspx

Extended

 

WebAdminHelp_Application.aspx.resx

Extended

 

WebAdminHelp_Internals.aspx

Extended

 

WebAdminHelp_Internals.aspx.resx

Extended

 

WebAdminHelp_Provider.aspx

Extended

 

WebAdminHelp_Provider.aspx.resx

Extended

 

WebAdminHelp_Security.aspx

Extended

 

WebAdminHelp_Security.aspx.resx

Extended

 

webAdminNoButtonRow.master

Extended

 

webAdminNoNavBar.master

Extended

 

WebAdminPage.cs

Extended

 

WebAdminStyles.css

Extended

 

WebAdminWithConfirmation.master

Extended

 

WebAdminWithConfirmationNoButtonRow.master

Extended

 

webengine.dll

Extended

 

webengine4.dll

Extended

 

wizard.aspx

Extended

 

wizard.aspx.resx

Extended

 

wizardAddUser.ascx

Extended

 

wizardAddUser.ascx.resx

Extended

 

wizardAuthentication.ascx

Extended

 

wizardAuthentication.ascx.resx

Extended

 

wizardCreateRoles.ascx

Extended

 

wizardCreateRoles.ascx.resx

Extended

 

wizardFinish.ascx

Extended

 

wizardFinish.ascx.resx

Extended

 

wizardInit.ascx

Extended

 

wizardInit.ascx.resx

Extended

 

WizardPage.cs

Extended

 

wizardPermission.ascx

Extended

 

wizardPermission.ascx.resx

Extended

 

wizardProviderInfo.ascx

Extended

 

wizardProviderInfo.ascx.resx

Extended

 

Workflow.Targets

Extended

 

Workflow.VisualBasic.Targets

Extended

 

wpf-etw.man

Extended

 

WsatConfig.exe

Extended

 

XamlBuildTask.dll

Extended

 

yellowCORNER.gif

Extended

 

Comments

  • Anonymous
    April 12, 2010
    I'm sure i read recently that Windows Update is supposed to eventually download the full version of the framework in the background on machines that only have the client profile installed.  Is this still the case? Or are machines with client profile destined to forever stay as client profile?

  • Anonymous
    April 13, 2010
    where can i get the x86-only version of client-profile installer ? will there be localized versions of client-profile installers ??

  • Anonymous
    April 13, 2010
    WRT, Windows Update. No, unlike .NET 3.5 SP1 Client Profile , if you have the .NET4 Client Profile installed on your client machine , Windows Update will NOT install NET4 Full. If your client machine does not have NET4, on most desktops Windows Update will install .NET4 Client Profile. For Servers, Windows Update will install NET4 Full. Note, that that the Windows Update schedule or final plan for NET4  has not been released yet.

  • Anonymous
    April 13, 2010
    Hi Fatcathu I updated the blog to also point to the x86-only version of the Client Profile (see http://download.microsoft.com/download/3/1/8/318161B8-9874-48E4-BB38-9EB82C5D6358/dotNetFx40_Client_x86.exe) Please note that most likely you do NOT need it. The Client Profile x64 version (dotNetFx40_Client_x86_x64.exe) as well as the Client Profile WEB Installer will install correctly on x86 machines. WRT Language Packs: They will be available in couple of weeks , so stay tuned.  

  • Anonymous
    April 27, 2010
    The screenshot with "Would you like to download and install .NET framework" sparks my interest. Would this work when running an application as a restricted user, ie not Administrator? We are having a ton of problems with .NET installations requiring Administrator rights and the recent talk about v4 Client Profile has sparked a tiny bit of hope...

  • Anonymous
    June 14, 2010
    So you means, XP SP2 can run .NET 4.0, only to install WIC first, right?

  • Anonymous
    July 02, 2010
    The comment has been removed

  • Anonymous
    July 09, 2010
    The comment has been removed

  • Anonymous
    August 08, 2010
    The comment has been removed