audaxviator
Programmer
Hi all,
First time posting.
An application was originally developed in older versions of VS, and is currently maintained in Windows 10 / VS 2017. The application executes on .NET 4.0, but there are some features of .NET 4.5.1 that I would like to take advantage of.
Changing the application target from .NET 4.0 to .NET 4.5.1 did not help because the referenced assemblies were still .NET 4.0
Manually editing app.config and changing the supported runtime version also had no effect. Removing the .NET 4.0 assemblies and referencing .NET 4.5.1 was a near miss: the change updated Intellisense and a build succeeded, but its world fell apart at runtime by loading the .NET 4.0 assemblies and throwing the most peculiar exceptions declaring "bug"
I was annoyed and tried all of the above and setting a search path to the .NET 4.5.1 assemblies. This made the refences in VS2017 look right, and the .NET 4.5.1 features are picked up by intellisense ... but build failed and bigger problems emerged!
Please tell me why I am finding it so hard to migrate from .NET 4.0 to .NET 4.5.1
Most assemblies with version 4.0.0.0 are from .NET 4.0
System.Runtime 4.0.10.0 is from .NET 4.5.1
There seemed to be no references to .NET 4.0 in the project, so what causes the error output referencing the automagically added mscorlib 4.0.0.0 and user specified System.Runtime 4.0.10.0?
I tried undoing all this by removing the 4.5.1 Assemblies from the project and reverting to .NET 4 settings. This also failed. VS2017 requires references to the previous 4.0.0.0 file versions, and those probably came fom GAC. I cannot find the .NET 4 assemblies on the filesystem and they are not downloadable for Windows 10.
Visual Studio seems unable to recover from this. Source control cannot help because the code has not changed. How do I make this go away? Please help, many thanks!
Promised screenshot:
First time posting.
An application was originally developed in older versions of VS, and is currently maintained in Windows 10 / VS 2017. The application executes on .NET 4.0, but there are some features of .NET 4.5.1 that I would like to take advantage of.
Changing the application target from .NET 4.0 to .NET 4.5.1 did not help because the referenced assemblies were still .NET 4.0
Manually editing app.config and changing the supported runtime version also had no effect. Removing the .NET 4.0 assemblies and referencing .NET 4.5.1 was a near miss: the change updated Intellisense and a build succeeded, but its world fell apart at runtime by loading the .NET 4.0 assemblies and throwing the most peculiar exceptions declaring "bug"
I was annoyed and tried all of the above and setting a search path to the .NET 4.5.1 assemblies. This made the refences in VS2017 look right, and the .NET 4.5.1 features are picked up by intellisense ... but build failed and bigger problems emerged!
Code:
'byte[]' does not contain a definition for Length
object does not contain a constructor that takes 0 arguments
'System.Boolean' is not defined or imported
(attached screenshot shows over 3000 more ...)
Please tell me why I am finding it so hard to migrate from .NET 4.0 to .NET 4.5.1
Most assemblies with version 4.0.0.0 are from .NET 4.0
System.Runtime 4.0.10.0 is from .NET 4.5.1
There seemed to be no references to .NET 4.0 in the project, so what causes the error output referencing the automagically added mscorlib 4.0.0.0 and user specified System.Runtime 4.0.10.0?
Code:
Severity Code Description Project File Line Suppression State
Error CS0433 The type 'AssemblyCompanyAttribute' exists in both 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' and 'System.Runtime, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' AssemblyInfo.cs 12 Active
I tried undoing all this by removing the 4.5.1 Assemblies from the project and reverting to .NET 4 settings. This also failed. VS2017 requires references to the previous 4.0.0.0 file versions, and those probably came fom GAC. I cannot find the .NET 4 assemblies on the filesystem and they are not downloadable for Windows 10.
Visual Studio seems unable to recover from this. Source control cannot help because the code has not changed. How do I make this go away? Please help, many thanks!
Promised screenshot: