What must be done to make net5.0 usable in Visual Studio Community Mac 2019 for VB.NET console projects? - vb.net

I want to write a cross-platform console application in VB.NET using Visual Studio Community Mac 2019 [VSCM2019]. It has to be able to be run on all platforms that dotnet 5.x currently supports.
When I create a new VB.NET console application in VSCM2019 it defaults to NET Frameworks 4.8 or lower. When I try to change that to net5.x in the project properties, net5.x is not offered in the dropdown list despite the fact that I have installed the latest dotnet 5 sdk.
Is it the case that I must select net5.x when creating the project? If so, where is this done for VB.NET console applications?

Whether or not VB.NET is supported or not, I managed to hack it into submission. I created a net5 C# project, renamed the .csproj file to .vbproj and replaced the .cs file with a .vb file. Instead of opening VS via the .sln file, I opened it via the .vbproj file. It compiled and ran and the project properties reflected the change to VB.NET. I then replaced the .sln by saving the project.

Related

Why can't I target for .net 4.8 in my new project and why can't I choose folders where .exe file will be?

I created a new project. I have 2 problems already.
The newest .net framework available is .net framework 4.8 right?
I cannot select that
I want my .exe file to show up on this folder
Instead, the .exe file show up in this
Note: I censored the username actually, but you got the point. It shows up at \net5.0-windows instead
I want that to show up on arbitrage2 folder straight. Not on arbitrange2\net5.0-windows
My other projects do not have this problem.
Where should I change this?
Also I suspect the problems are related. That's because my other project can have target framework 4.8. In fact, in other projects, .net 5.0 and .net 6.0 is not available

VB 2019 project settings empty

I want to store startup settings for my project. When I go to the project Properties/Settings, it's empty except for a link that says, "This project does not have a default settings file. Click here to create one." When I click the link to add one, it says "The system cannot find the file specified. (Exception from HRESULT: 0x80070002." So, how do I add a default settings file?
As mentioned in my comments, this seems to be a bug in VS and ought to be reported to Microsoft. As a temporary workaround, you can actually copy the settings files from a .NET Framework project into a .NET Core project. As far as I can tell from examining various VB and C# projects targeting .NET Framework and .NET Core, the settings files are the same in each case, so there's no issue copying between them. Here's what I did:
Added a VB WinForms app project targeting .NET Framework to the same solution.
Clicked the Show All Files button in the Solution Explorer for both projects.
Expanded the My Project node for both projects.
Dragged the Settings.settings item from the .NET Framework project to the .NET Core project.
It seemed to work as expected after that.

VS 2019 Custom ASP.NET Core project templates

I'm trying to figure out how (or even if) I can create a custom Visual Studio project template that hooks into the existing ASP.NET Core Web Application template available in Visual Studio 2019?
What I want to do is something similar to madskristensens ASP.NET Core Template Pack (GitHub source code). However instead of VS 2017 I want to do this for VS 2019's revamped "New Project Dialog" window. So imagine adding an additional ASP.NET Core web application template in the place highlighted below.
I am able to create new project templates (both for Visual Studio and for dotnet new) but nothing has worked thus far. Has anyone been able to extend VS 2019 in this way, or was this taken away after VS 2017?
After doing some more investigation between both VS 2017 and 2019 (Community) I was able to successfully figure this out! Man oh man do we need some docs on this because this felt like a doozy!
I was able to use the ASP.NET Core Template pack as a building block for putting something together. For those who don't know, the extensions are designed to add templates to Visual Studio using .nupkg file(s) embedded in the extension. The use of the .nupkg files is similar to how dotnet new works with custom templates. I've got a working prototype on GitHub that supports both Visual Studio 2017 and 2019.
Now if you're like me, you may look at either madskristensens or my project and ask "How in the heck does this work!?" Great question! Here are the details I have the time to fill out right now:
Build out a custom template (or templates) and place them into *.nupkg file(s)
In my sample, my SampleTemplates project contains three different project templates. I generate the .nupkg with dotnet pack
A vs-2017.3.host.json file is required in the .template.config/ folder so that the ASP.NET Web Application wizard can display the template.
At least 1 or more other requirements need to be fulfilled to be displayed in the ASP.NET Web Application wizard, but I haven't yet figured those out, as adding the file to a console app template doesn't cause it to appear. I want to try and figure this out, although I'd love help if anyone already knows!
The template.json needs a Framework symbol to define the list of .NET Core framework targets that are supported by the template.
In doing some testing, it didn't look like the Framework symbol didn't substitute into the .csproj, so that is why my example also includes a TargetFrameworkOverride symbol that the Framework symbol replaces.
Place the .nupkg file(s) into the root of a VSIX extension project and make sure to set the "Include in VSIX" flag to True. I emphasize root because originally I had the NuGet package landing in a build\ folder in my extension and my templates weren't being picked up.
I'll try to put together a README in my example project to provide a better outline of all of the details required to accomplish this. Fingers crossed this helps someone out (or at least help me out in the future when I inevitably forget how I accomplished this)!
Update
As of September 2nd, 2020, the Visual Studio team released an experimental feature to include dotnet new templates within Visual Studio. I have done some exceptionally minimal testing with it, and it does appear to work, but it's not perfect. For example, I created a dotnet new template that scaffolds multiple .csproj files and .sln file, and the output didn't quite match my solution.
This is the Visual Studio blog post describing the announcement: https://devblogs.microsoft.com/dotnet/net-cli-templates-in-visual-studio/

Why does one VB.net project properties list Configuration and Platform and another does not?

I just created a new VB Windows forms project using VS2010. The solution also contains a Fortran DLL project. I've set the platform to x86.
When I pull up the VB project properties it does not list the configuration or the Platform at the top of the properties dialog. This means I can't set the Compile tab Build output path differently for debug or release.
I've created several similar solutions using VS2008 and recently converted them to VS2010 and have not had this problem.
Mike
That is because you are using VS2010 Express and your single project is not in a solution project.
You could manually change the output from your .VBPROJ file with notepad. Inside that file you could do other changes . FOr exemple switching from Debug to Release. You have to restart your VS2010 Express edition to apply the changes (if I am not mistaken and it will be onkly true if you are using the Express Edition)

Making a Stand-Alone EXE File

I'm currently using Visual Studio 2010 to make a Visual Basic project. I'm trying to make a standard .EXE file for distribution but everytime I go to publish, I keep seeing it make a Click Once application.
Is there a way to complete and build a project in VStudio 2010 without making it as a Click-Once application?
Don't Publish it; that is what is making it a clickonce application. Just Build Solution; this will create the exe in the specified output directory (usually debug or release depending on your current Configuration.