'Forms' is not a member of 'Windows' - vb.net

I tried to change the Target Framework on my app recently from .NET Framework 4.5 to 4.5.2, but if I do I get the following error when trying to build: "'Forms' is not a member of 'Windows'" (that is, System.Windows.Forms). Changing to 4.5.1 works normally. I'm using Visual Studio 2013 Ultimate.

I had this error when changing to 4.5.2.
In my case the error was related to a MessageBox ... I replaced: "Windows.Forms.DialogResult.Yes" (which caused the same error message) with "System.Windows.Forms.DialogResult.Yes" which did the trick.

I had the same problem, me too with Windows.Forms.DialogResult enumeration values.
The project automatically imports System and System.Windows.Forms namespaces and worked fine up to 4.5.1.
In 4.5.2 I had to remove Windows.Forms. and just leave DialogResult.Ok (or whatever else) in my code, it seems to be a problem with namespaces resolution.

Make sure that you add System in front of the Windows.Form.

I ran into this with an application still targeted to .NET 4.0, where it failed on one (new) build server, but ran on my older ones.
I narrowed it down to the .NET 4.0 Targeting Pack only being installed on the old build servers. Targeting pack is included in Visual Studio, or the Windows 7.1 SDK. It is for some reason not distributed separately, and with support ending for .NET 4, 4.5 and 4.5.1, I don't suspect this is likely to change. Because my older servers have been around a couple years, they've gone through in-place upgrades and so had the targeting pack already.
When you install Windows 7.1 SDK on Server 2012R2, it complains something to the effect of "A pre-release version of .NET 4 is installed, please install the RTM version". As far as I can tell, it's simply because a newer version) is installed -- Server 2012R2 comes with 4.5.1. I tried to uninstall all newer versions, but was unable to get the SDK to install the targeting pack.
So to install:
Download the Windows 7.1 SDK ISO image
Unzip it
Run Setup\MTPack\netfx_dtp.msi EXTUI=1
You should now have a %programfiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\ folder with the 4.0 stuff.
(EXTUI=1 bypasses the restriction that it can't be installed separately).
This allowed me to compile projects still targeting 4.0 (or re-build old revisions/branches that were targeting it at the time).

Related

Upgraded ASP.NET and .NET Core runtime from 3.1 to 6.0.8 but application installer still detects old runtime

I need to upgrade an application in a Windows Server 2016 machine, and in order to do so they require ASP.NET Core runtime to be v3.1.1 or higher. I have installed v6.0.8, but when running the application installer it seems to still be detecting the old version and therefore can't run the update. I checked the new version is installed using "dotnet --list-runtimes" and it shows OK. I have also checked the registry, and confirmed the new version is there. I have restarted IIS as well. But so far nothing. What could I possibly be missing? I don't have control over the application code, so I can't access the runtime json file to modify version used as I have seen in some solutions.
Any help, appreciated. Thanks.

How can I use VS2019 Files in VS2022 and vice versa?

In my school they use VS 2019. I installed the same because that was what was available at the time (community version for me, I think the same for my school).
I had a couple of issues with VS2019 so I uninstalled everything and installed 2022 version instead. I then began to use this for the last 2 weeks but when I tried to open my old files, I couldn't.
I did install framework 3.1 again and the code will enter runtime successfully, but I still can't see the code that I wrote. I don't want to re-install VS2019 because it kept on giving me issues with intellisense which I just couldn't fix.
Is there any way I will be able to open my old 2019 files in 2022? Also, will 2019 be able to open 2022 files?
The generic answer to this is mostly yes but maybe no depending on your specifics. That's not a helpful sentence, so let me explain.
For the most part, Visual Studio solutions and projects are cross-compatible1. This means that if you have a project from one version, you can usually open it in another version without issue. The major caveat to this is the range of frameworks supported by each VS version may be different. VS will often be able to open the project, but might not be able to build and run it.
(Because you tagged this with vb.net, I'm limiting this to .NET versions. The same concepts may apply for other platforms.)
For example, VS2019 supports:
.NET version 5 (Visual Studio 16.8 or later)
.NET Framework versions 4.8, 4.7.2, 4.7.1, 4.7, 4.6.2, 4.6.1, 4.6, 4.5.2, 4.5.1, 4.5, and 4.0
.NET Core 3.1, 3.0, 2.2, 2.1, and 1.1.
And VS2022 supports:
.NET Framework versions 4.8, 4.7.2, 4.7.1, 4.7, and 4.6.2
.NET Core 6.0 Preview, 5.0, 3.1, 3.0, 2.2, and 2.1.
Note how VS2022:
DOES NOT support .NET Framework versions 4.0-4.6.1, or .NET Core 1.1
DOES support .NET (Core) 6.0 - which VS2019 does not
It is reasonable to expect that the next version of VS will stop supporting some versions while it adds support for new ones again, so this compatibility range will change with each VS release.
1: Each different type of project requires a Project System to support it. Occasionally, these may be dropped out of support like with the frameworks described above, but with the more severe consequence that VS will not be able to open the project at all. Some examples over time: Silverlight and Windows Phone projects, Setup projects, DNX (early .NET Core) projects, etc.

VS2017 : Target framework drop down does not show .NET Core 2.1 option

I have already installed VS2017 Enterprise 15.6.4. Recently installed .NET Core 2.1.101 SDK from official site
I was expecting .NET Core 2.1 as one of the target framework available if I create console or asp.net core application. Can someone help me understanding what I am missing here.
As suggested in comments, I installed 15.7 preview 2. Still no luck and same issue.
I have faced the same problem. I solved this by installing the right SDKs with Runtime for .NET Core 2.1.
Basically to run/create 2.1 projects from VS Preview, you need to install the "2.1.300" (not 2.1.4) .NET Core SDKs and Runtime. https://www.microsoft.com/net/download/dotnet-core/sdk-2.1.300-preview1 (this includes required Runtime already)
The good explanation of this misleading with versions i found here https://github.com/dotnet/cli/issues/8309 (dasMulli commented on Feb 24).
In case this helps someone else... After installing VS 15.9.2 my project that was working fine with 2.2 preview-3 stopped working. VS could not see the preview SDK. I could build the solution using dotnet.exe but not VS.
To solve this I created a global.json at the root folder of this solution pointing to the preview sdk. That allowed VS to see the preview version.
This is a change of behavior in VS between 15.8.x and 15.9.x.
To create the global.json you can navigate to the desired folder and type this:
dotnet new globaljson
Make sure dotnet PATH variables are in correct order
If you have installed an SDK for a different system architecture (e.g., if you installed 32-bit/x86 SDK on a 64-bit computer), then a new entry in the PATH variable would have been created for that specific location (e.g., C:\Program Files\dotnet or C:\Program Files (x86)\dotnet).
The problem is that Visual Studio, when searching for installed frameworks, will stop at the first PATH variable entry it finds that contains an SDK. So, if the first version you installed used an incorrect architecture, then you'll have to adjust the position of those entries before any of the correct SDKs will appear in the Target Framework drop down.
Source: this absurdly-hard-to-find comment within issue #8309.
TL;DR: Make sure the first "C:\Program Files\dotnet\" entry in your path variable you see in the list matches your system architecture:
64-bit = C:\Program Files\dotnet\
32-bit = C:\Program Files (x86)\dotnet\
Make sure that Visual Studio 2017 is up to date. Go to "Tools" -> "Extensions and Updates" to install visual studio updates. This resolved the issue for me.
I have faced the similar situation I tried to install the preview version of the dot net but it did not help.
However after I updated visual studio (from 15.8 to 15.9.6 ).
I Could see dot net core 2.1 in the target framework.
Updated to Latest VS 2017 and installed latest .Net Core SDK.
Changed global.json to point to latest version installed.
This resolved for me.
I had faced the similar issue. I then just updated my Visual Studio 2017 to 15.9.16 version and restarted the system. The problem got resolved.
I was facing the similar issue, I uninstalled the .Net Core 2.2 runtime and then from the below link:
https://dotnet.microsoft.com/download/visual-studio-sdks?utm_source=getdotnetsdk&utm_medium=referral
Install the .Net Core 2.2 Visual Studio SDK, Restarted the Visual Studio and my issue got resolved, .Net Core 2.2 is now getting listed in Target Framework list in the project properties in Visual Studio 2017 Version 15.9.16
I created a new project under .net core 2.1 and it was ok but in my old project have not appeared. So I opened both ".cproject" files and compared them together and found the problem.
Open your project's ".cproject" file in a text editor then replace below line
<TargetFramework>netstandard2.1</TargetFramework>
with this one:
<TargetFramework>netcoreapp2.1</TargetFramework>

I am using monodevelop and I am getting a "framework mono/.NET 4.0 not installed" error when I try to build

The fun part is, I do have .NET 4.0 installed, as well as all GTK#. I thought maybe I installed it in the wrong order or something ridiculous, so I uninstalled and re-installed everything. I even tried installing plain old mono, and then installing monodevelop, but I still get that same error.
IIRC MonoDevelop 2.4 had a bug that prevented it targeting the final released version of .NET 4.0. The fix should be in MonoDevelop 2.4.1.
As a workaround, assuming you installed Mono 2.8 (which has 4.0 support), you can change your target runtime to Mono instead of .NET. Either
Change the default using the Tools -> Options menu, then the .NET Runtimes panel
or
Change the target of the current project using the Project->Target Runtime menu.
you could easily change the framework under which tyour application is running to allow MonoDevelop build your's successfully by doing the following:
open menu "Project"
choose Application options
from "General" tab, change the "Target framework" to be "Mono / .NET x"

Why it always report .net core SDK not installed while it already here?

I am going to debug my asp.net core project in the windows server 2012R2 while the VSCode reports this.
Then I installed the .net core SDK.
However, the error above comes again.
Well, in the Programs and Features of Control Panel, it is installed already yet.
It is so strange that in the Powershell of dotnet --info.
It said that no SDKs were found.
Why it turns out to be this?
And how can I install the .net core SDK correctly?
PS: the computer is an X64 system.
I noticed that I have installed both X86/X64 Runtimes.
After I uninstalled the X86 Runtime, it works.