PowerShell not working on Windows 2008 R2 - powershell

I have accidently installed .Net 4.5 on my Windows Server 2008 R2 for PowerShell 5.1, but now I have reverted to .Net 4.0 version and now the PowerShell is not working. It gives below error.
Windows PowerShell terminated with the following error: Method not found: 'System.Threading.Tasks.Task System.Threading.Tasks.Task.Run(System.Action)'
What should I do to resolve this?

Perhaps this is the same issue you have: https://michlstechblog.info/blog/powershell-method-not-found-system-threading-tasks-task-system-threading-tasks-task-runsystem-action/
If that does not work for you, you can always reinstall Powershell 3.0. Download it from https://www.microsoft.com/en-us/download/details.aspx?id=34595
You can also install a higher version if you would like. It would do no harm. Reinstall will require a reboot as they come in the form of KBs.

You will need to download Windows Management Framework 3.0 or install Microsoft .NET Framework 4.5 to correct your issue.
Windows Management Framework 3.0 - link
Microsoft .NET Framework 4.0 - link
or you can get
Windows Management Framework 4.0 - link
Microsoft .NET Framework 4.5 - link

Related

Starting with PowerShell 5.1

I start learning Windows PowerShell 5.1 on Windows 10, newest version. I use the Microsoft PowerShell documentation https://learn.microsoft.com/en-us/powershell/
Q1: It is mentioned that you need Windows Management Framework (WMF) 5.1 for Windows PowerShell 5.1 but in Windows 10 PowerShell 5.1 is allready installed by default. So there is no WMF 5.1 needed, or is WMF 5.1 installed in Windows 10? How can I see if WMF is installed and which version?
Q2: There are also Microsoft .NET Framework requirements for Windows PowerShell 5.1: It requires the full installation of Microsoft .NET Framework 4.5. How can I find which version of .NET Framework is installed on my PC? I see there allready is a version 4.8 runtime and 4.8 developer pack. So I think the best I can do is install 4.8 Developer Pack?
The reason is that if I want to use and install packages from the PowerShell Gallery I need the PowerShellGet module and the PowerShellGet module requires .NET Framework 4.5 or above.
To determine the DotNet Framework version you can check the registry or use a 3rd party tool: link
For example, you can run this:
(Get-ItemProperty "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full").Release
and then check the release table:
.NET Framework 4.5 378389
.NET Framework 4.5.1 378675
.NET Framework 4.5.2 379893
.NET Framework 4.6 393295
.NET Framework 4.6.1 394254
.NET Framework 4.6.2 394802
.NET Framework 4.7 460798
.NET Framework 4.7.1 461308
.NET Framework 4.7.2 461808
.NET Framework 4.8 528040

.Net framework 4.0 issue on windows 10 os

I am trying to install one windows application on windows 10 platform. My application need to install Dot Net Framework 4.0 when trying to install then error message will appear and say to install Dot Net Framework 4.0 after that when I try to install Dot Net Framework 4.0 then error message shows me Dot Net Framework 4.0 already install in this system so I can't understand what is the issue with that.
Windows 10 included Dot Net Framework 4.0 and above.
Windows 10 (all editions) includes the .NET Framework 4.6 as an OS component, and it is installed by default. It also includes the .NET Framework 3.5 SP1 as an OS component that is not installed by default. The .NET Framework 3.5 SP1 can be added or removed via the Programs and Features control panel.
https://blogs.msdn.microsoft.com/astebner/2007/03/14/mailbag-what-version-of-the-net-framework-is-included-in-what-version-of-the-os/
So you don't need to install as already "Installed"...

Running the "migrate.exe" for entity framework 6.0.2 migrations in Windows 2003 and XP "Not a valid win32 application" exception

Our product needs to be compatible with versions of windows including Server 2003 and XP.
We have code first entity framework projects with various migrations.
We are deploying these migrations to create or update a database using the "migrate.exe", file version 6.0.21211.0, supplied in entity framework 6.0.2 nuget package.
When using XP itself with visual studio 2010 or Windows 7 with visual studio 2013 to install the package every time we run "migrate.exe", on an xp or server 2003 machine, we are getting a "not a valid win32 application" exception.
Is there a good reason why "migrate.exe" will not run on windows xp and windows server 2003 other than the fact they are operating systems that nobody really wants to support any more?
I managed to resolve this issue by downloading the source code for 6.0.2 version of entity framework, un-signing it in properties, then building it through .net 4.0 and not 4.5 by changing the solution configurations to Release40.
Source code can be found here:
http://entityframework.codeplex.com/SourceControl/changeset/7648d33dfb53589d9c32b605c61758a5a6c0b80b
I found it quite difficult to locate it.
You probably don't have .NET Framework installed on the machines where it fails.
(As a side note I believe both XP and 2003 go out of support soon so you may want to upgrade your environment...)

Can I install Microsoft .NET Framework 4.5 on Windows 2008 Server Standard SP1

I have Windows server 2008 standard service pack 1 with .Net FrameWork 3.5 sp1, can I install
Microsoft 4.5 framework without installing Microsoft framework 4.0 before?
Also if you look at the system requirements you will see that prerequisite is Windows Server 2008 SP2 while I have only SP1 and it seems I can't install SP2.
I just installed 4.5 on Win2K8 Server and it installed fine (without installing 4.0 prior).
NOTE: In IIS the application pool will still show up at 4.0 although the 4.5 install succeeded.

How to detect .Net 2.0 SP1 in my installer?

How can I detect if .Net 2.0 SP1 is installed from my installer msi, and abort the install if it is not present?
I know how to do this in code, but it seems cleaner do it in the vdproj. It feels more declarative.
All you need is a Launch Condition Editor where you can set minimum .net version installed on the client machine to 2.2.30729 (.net 2.0 sp1). Hopes it helps.
You could check the value of the MsiNetAssemblySupport property, comparing it to the version number for Fusion.dll when .Net 2.0 SP1 is installed.
Details from MSDN - http://msdn.microsoft.com/en-us/library/aa370325%28VS.85%29.aspx