Today I encountered with the line
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
in my App.config
file which caused errors with framework when the sku
attribute was included. Although, I searched a lot I couldnt really find out what SKU
means (other than the definitions "stock keeping unit" or "Shelf Keeping Unit" which I dont think are related to this case).
In short, what does SKU mean/stand for ?
See the msdn documentation about the supportedRuntime element. It has a table with the valid values for SKU and also what each means.
A good answer to this question is here:
What happens if I remove the auto added supportedRuntime element?
in the last point: "If you want to be able to run on .NET 4.0, but don't need any new 4.5 APIs"
Essentially the configuration you found in your App.config has been added automatically because your project has been set to automatically to be built with .net Framework 4.5.
If you want your application to run with .net Framework 4.0 (with no 4.5 in-place update) you just right.click the project --< Properties and set the target framework to 4.
App.config will be modified in:
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
Interesting read also Rick Strahl's post:
http://weblog.west-wind.com/posts/2012/Mar/13/NET-45-is-an-inplace-replacement-for-NET-40
SKU stands for Stock-Keeping Unit (SKU), which in turn specifies which .NET Framework release this application supports.