I have a Asp.Net Core 3 project in Visual Studio using the standard MVC template. After updating VS to 16.4.6, I could not run the project anymore. I can build without issues, but attempting to run will give:
How do I fix this error? I did not make any explicit changes to my .NET environment (other than updating VS).
Related
I had a very simple .Net Core console app that I was using to try experiment with docker/containers. I had heard that Visual Studio had great docker support and wanted to see if I could leverage it. After creating the .Net Core from the Visual Studio Templates, I right-clicked the Project to add "Docker Support...", then when prompted for Linux vs Windows, I selected Windows and then got the following error:
An error occurred while adding Docker file support to this project.
Value cannot be null.
Parameter name: netCoreVersion
I've tried various things and nothing seems to be working.
After much troubleshooting, this is what solved my problem. The TargetFramework I was using was not being recognized by Visual Studio. I wanted to test using a Windows only build because that is my primary use case.
Right-clicking the Project Properties, the TargetFramework was .NET 6.0 but the Target OS was Windows and NOT (None).
Those 2 settings combine the csproj file to have a setting of
<TargetFramework>net6.0-windows</TargetFramework>
instead of
<TargetFramework>net6.0</TargetFramework>
The Fix
Essentially get your TargetFramework to be net6.0. You can edit raw, or just select (None) as your Target OS. You can then add the Docker File, and then reset your project back to your Target OS.
I have created a asp.net mvc core app targeting the .net framework (not the multi platform core) as I want to include standard .net framework libraries and running cross platform is irrelevant to me as I will be hosting in Azure.
The solution looks like this:
I am trying to get a VSTS build working with this project (which is part of a larger solution) but when building I get the following error:
Which seems to be a common error. What should my build definition look like to build these .csproj based projects? There seems to be a lot of information but no definitive answer. Hopefully that answer can be here and people can stop looking elsewhere for information on how to get a Continuous Integration build going.
On a side note at the solution level I find no packages folder containing my nuget packages, why is this? The project definitely contains nuget packages.
Your project is using the newest MSBuild based project files for .NET Core.
The extension is still .csproj, but the XML schema is different than the ordinary .csproj used in .NET46 (and previous versions).
You need appropriate tooling to build such .csproj file, for example:
Visual Studio 2017: install it on your private build agent; VSTS hosted build agent does not have VS2017 installed yet;
.NET Core SDK 1.0.0-preview4-004233 (or more recent): this SDK contains the command line tool 'dotnet' for MSBuild .NET Core based projects.
Note in your build log that the msbuild used is the one shipped with VS2015 (version 14.0) instead, that does not support such .csproj format file.
On the other hand, if you do not need multiplatform nor any other benefit of .NET Core, why are you using it? Just created an ordinary ASP.NET 4 web project targetting .NET 4.6.
When using Team City for CI builds there is an option to use the Resharper command line tools to run Code Analysis inspection of the code as one of the build steps.
I have this working with reference library projects but the mvc.net project in the solution fails with reference errors:
One or more types required to compile a dynamic expression cannot be
found. Are you missing references to Microsoft.CSharp.dll and
System.Core.dll?
Even with the default Microsoft template there are over 200 errors and they seem to all come from the razor views. (The project compiles and deploys from the build server correctly and FXCop also runs successfully, this seems to be an issue just for resharper tool.)
I can run the resharper code inspection in visual studio without errors.
In Team City I just have a default Inspection (.NET) build running pointing at the .sln file.
We are using Resharper Command Line Tools 9.1.201 as provided with TeamCity 9.0.4
What configuration or additional steps can I take to get the resharper command line tool to resolve mvc view references on the build server?
If resolving the references is not possible, can the razor views be excluded from the analysis without needing to add each exclusion to the command line?
For future reference, I just had the same issue. Digging through the build log, I noticed a seemingly unrelated warning:
The reference assemblies for framework ".NETFramework,Version=v4.5.2" were not found.
I retargeted my project to .NET 4.6 and installed the .NET 4.6 targeting pack, and the code inspection errors are gone. Unfortunately, I don't know if just installing the .NET 4.5.2 targeting pack would have solved the issue.
I have recently run into an issue where (for some reason this behaviour has appeared out of nowhere) during web deployment of a project to Azure Websites - some reference assemblies of the dependent projects are not automatically included into the deployment package.
SO this is a rough structure of my project:
1) ASP.NET MVC project that references class library project
2) Class library project that references some NuGet packages
Now, when I web deploy the ASP.NET MVC project to Azure Website - not all of the NuGet packaged assemblies from the reference class library are deployed (it seems that some are included automatically and others are not). Everything works fine when run locally. All of the required assemblies are copied over to the bin folder of the ASP.NET MVC project.
Now, the only way that I have found to work around this issue is to add the NuGet package of the missing reference directly to ASP.NET MVC project. I really don't like this workaround - since it breaks the modular structure of my project.
Surely there must be a way to specify which assemblies are to be included with Web Deploy? I have tried some pretty extensive google searches on the topic - but that didn't yield an working solution.
Try the following for each of the offending Nuget packages:
Open the Package Manager Console. Make sure the Default Project dropdown is set to your MVC project.
Run Uninstall-Package [Package Name] -Force
Run Install-Package [Package Name]
If you need to keep a particular version of a package instead of just pulling the latest in, you can add -Version [Version Number] to the end of the last command.
That will essentially refresh all the references and other bootstrapping for the package, then try to web deploy again.
I have downloaded and installed all of the prerequisites for using MVC 4 with VS2010. The VS2010 SP1 update, ASP.NET MVC 4 for VS2010, SSDT for VS2010, and LocalDB. When I go to create a new website in VS2010, there should be an "ASP.NET MVC 4 Web Application" template, but there is not. How can I get the templates so I can start a new MVC 4 website in Visual Studio 2010?
Have you tried reinstalling the templates. Follow these directions.
http://msdn.microsoft.com/en-us/library/vstudio/ms247116(v=vs.100).aspx
short answer, open up visual studio command prompt and type:
devenv /installvstemplates
That should restore all your templates.
Check if Project Templates are installed:
Manually search if you find the project template (it would be *.zip) inside %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\Web\1033
If YES, please run devenv.exe /installvstemplates
If NO, then its guaranteed that the ProjectTemplates are not installed. You would have to reinstall to get the ProjectTemplates on your disk.
For the records:
All the installed project templates are available here: (this is the default path)
%ProgramFiles%\Microsoft Visual Studio
10.0\Common7\IDE\ProjectTemplates
This is where the File->New ->Project Dialog loads ProjectTemplates from, and is displayed in the Same Folder heirarchy convention.
You could add another path by updating
Tools -> Options -> Projects and Solutions -> General -> User Project
Template Location
On studio(devenv.exe) launch/loading it would try to create a ProjectTemplateCache on localappdata or %ProgramFiles% based on whether you are local user or admin.
The cache inside Programfiles are available here
%ProgramFiles%\Microsoft Visual Studio
10.0\Common7\IDE\ProjectTemplatesCache
This ProjectTemplateCache directory is Created (if doesnt exists) or Updated(if already exists) by running *devenv.exe /installvstemplates on cmd. This command is run during installation of Visual Studio. Ideally all other installers who ship project templates should run this command. But, sometimes this might fail due to access rights. So its is safe to run it again manually.
See this question
If you didn't install the Visual Web Developer component, the ASP.NET
project templates won't be fully installed. Naturally, because the
installer then thinks it doesn't need to put them there as ASP.NET is
a web development framework.
1) Install it as Administrator. right click on file and run it as Administrator.
2) Uninstall it and Install it as administrator again could solve your problem
If the install went through fine without errors/warnings/exceptions -
Try changing the .NET framework on the New Project window, make sure you are viewing .NET framework 4.0 templates.
PL
Repair MVC 4 installation. It will take care of project template installation
Same as me.
make sure register and activation vs2010 product.if vs not register and not type any key for activation vs You can not ins mvc4 for it.
Please register vs2010 and re-install mvc4.then you can see mvc4 when you create project.