Question

With Visual Studio 2013 Express on a machine with .NET 4.5 and .NET 4.5.1 installed, a newly created WPF project will have the following App.config file.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

Note that the combination of values in the App.config is not found in the table that describes valid <supportedRuntime> attribute values. Link to the MSDN table for supportedRuntime attribute values

Does this matter to the functioning of the application?

Was it helpful?

Solution

You are not reading the table correctly, it doesn't contain "combinations". It only lists the possible values of the "sku" attribute. Yours does of course appear in the table, it is the last one.

The table does not list the value of the "version" attribute. That's already assumed to have the proper value, as written just above table:

when the version attribute is v4.0 or v4.0.30319

Or to put it a different way, the runtime version is v4.0.30319 regardless if you are targeting .NET 4.00, 4.01, 4.02, 4.03, 4.5 or 4.5.1. The extra "sku" attribute was necessary because these framework versions are actually not very compatible. Particularly 4.5 made very drastic changes to the core framework assemblies, moving types around. That a project that targets 4.0 can still run on 4.5 took a fair amount of trickery, it does go wrong if you don't build the project correctly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top