Rider showing MvcApplication (load failed) - linux

I just installed JetBrains Rider and initiated a .net core MVC app. It finished generating the initial files and shows MvcApplication(load failed). I installed .net core from its own website and 'dotnet' command is working as dotnetcli is also installed. The error message displayed is "Solution 'MvcApplication' load failed. Rider was unable to detect a Mono runtime on this machine. We strongly recommend to install the latest version of Mono."
Why is mono required if I have already installed dotnet core?

For now Rider doesn't support .net core msbuild. You have to install mono and msbuild along with .net core, see https://rider-support.jetbrains.com/hc/en-us/articles/207335749-Using-Project-Rider-under-Linux-prerequisites
We're going to fix it soon =)

Related

Azure DevOps build of Xamarin.iOS project fails - MTOUCH : error MT2002: Failed to resolve "System.Drawing.Color" reference

I have a build issue with a Xamarin.iOS app in Azure DevOps that I haven't been able to solve. I'm wondering if anyone has any suggestions.
Building the iOS version of the app works locally in VS for Mac but fails in Azure due to this error:
MTOUCH : error MT2002: Failed to resolve "System.Drawing.Color" reference from "System.Drawing.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" [/Users/runner/runners/2.164.6/work/1/s/iOS/CatRentalStore.iOS.csproj]
I was having a similar issue with the Android build. I resolved it by switching from the macOS-10.14 hosted build agent to the windows-2019 agent, but that isn't an option with the iOS app.
I've updated packages that may use System.Drawing.Color to the latest stable releases - Acr.UserDialogs, BTProgressHUD, Splat, and Xamarin.Essentials.
I searched the solution source and did not find any direct references to the System.Drawing.Color class.
I also tried specifying the version of Xamarin/Mono to use in the build to match my local version using sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh 6_4_0. That caused a different error to occur:
error MSB4018: The "GenerateDepsFile" task failed unexpectedly.
error MSB4018: System.MissingMethodException: Method not found: System.Collections.Generic.IList`1<NuGet.Packaging.Core.PackageDependency> NuGet.ProjectModel.LockFileTargetLibrary.get_Dependencies()
References to this issue:
https://github.com/mono/mono/issues/13483
https://github.com/xamarin/xamarin-macios/pull/6011
https://github.com/aritchie/userdialogs/issues/654
https://github.com/reactiveui/splat/issues/204
According to this document:
NET Core 2.2.105 is default on VM images but Mono version 6.0 or greater requires .NET Core 2.2.300+. If you use the Mono 6.0 or greater, you will have to override .NET Core version using .NET Core Tool Installer task. If you use 6.4.0, you need to install at least 2.2.300+ .net core.
I had the same problem. Visual Studio sometimes failed to update the reference during the NuGet package upgrade:
These steps helped me resolve my issue (iOS project):
Check every reference and see if it matches the version of the corresponding NuGet package
Check the path/version of the referenced assembly:
Make sure that it matches your installed package version:
If the versions do not match: downgrade the corresponding NuGet package and then upgrade the same NuGet package again and check if the version now matches
I did that procedure one NuGet package at a time. After ensuring that all versions match the build succeeded.
On my dev machine, the older versions were still present in the packages folder. Therefore the build always worked on my machine but not on the build server.

ASP.NET Core app build to target Core 2.1 fails on IIS 10 server where Core 2.1 is installed

I have just setup up IIS 10 on a clean Server 2016 hosted server, and installed the following packages that I have gleaned should be on the machine to allow IIS to host ASP.NET Core applications:
aspnetcore-runtime-2.1.0-win-x64.exe
dotnet-hosting-2.1.0-win.exe
dotnet-runtime-2.1.0-win-x64.exe
I have installed my app straight into the Default Web Site and replaced all files in C:\inetpub\wwwroot\ with my app files. I also did assign the web site an app pool with no managed code, so that isn't my problem.
Last time my app was built with 2.0, and I installed the latest versions of the above packages, which I'm sure was 2.0, and the only error I had was that the command dotnet that IIS uses to invoke Kestrel to run the site, was not in the PATH env. variable
Now when I try and browse to localhost on the Server 2016 machine, it gives me the following error, found in the Windows event log:
Application 'MACHINE/WEBROOT/APPHOST/DEFAULT WEB SITE' with physical
root 'C:\inetpub\wwwroot\' failed to start process with commandline
'dotnet .\QuickDrive.Mvc.dll', ErrorCode = '0x80004005 : 8000808c.
Initially I tried with the same build as before, which was 2.0, and when I got this error, I rebuilt the app to target 2.1. Nearly every search result and relevant SO answer I can find suggest a version conflict, but now there should at least be no version conflict between the runtime and hosting package on the server. Maybe there are other version conflicts I am not aware of though?
At very least I'm asking for some advice on how to get more detailed diagnostic information, even if I don't get an answer that tells me straight what config options and versions to check on Windows and on IIS.
You have to install the Core SDK for whatever version you want to target in Visual Studio. Installing the runtime alone won't do the trick. You may have the restart Visual Studio afterward to see it in the list.
Here is a link to the SDK 2.1 download (the latest as of this writing).
I solved the problem by running dotnet myWesite.dll in PowerShell, and first I found that dotnet.exe was not in the PATH environment variable, and after fixing that, running dotnet myWesite.dll again gave me a meaningful error message that an assembly was missing because it had not been included when I published the website.
I faced the same error on the dev machine in IIS Express. MVC App stopped working all of the sudden. Eventlog gave the 0x80004005 error code.
After trying multiple suggestions, the solution to debug the wired error code was to run the app in the console:
[Project bin folder]> dotnet [projectname].dll
It appeared that during the NuGet package update, the dotnet core version was accidentally updated to 2.1.4 where as the installed version was 2.1.3
[could be a bug in Nuget manager as the update was from there]
I edited the project file to reference the available version (2.1.3) and the app started to work properly.

Azure .Net core with sql internal server error

I am following microsoft documentation to deploy .Net core with sql. when I go to my website the following is displayed:
An error occurred while starting the application. .NET Core X86
v4.1.1.0 | Microsoft.AspNetCore.Hosting version 1.1.2 |
Microsoft Windows 10.0.14393 | Need help?
When I run the app on local machine there are no errors and I am able to add toDo Items.
In my CsProj file:
<TargetFramework>netcoreapp1.1</TargetFramework>
I have seen other people with similar issue discuss a global.json file, but i do not see any and am not sure if I should create one and what exactly to put in it.
Possibly Related info:
When I push to azure in command line I get this error:
warning NU1701: Package 'Microsoft.Composition 1.0.27' was restored
using '.NETPortable,Version=v0.0,Profile=Profile259' instead of the
project target framework '.NETCoreApp,Version=v1.1'. This package may
not be fully compatible with your project. remote: Restore completed
in 269.7 ms for D:\home\site\repository\DotNetCoreSqlDb.csproj.
the deployment is successful though.
You could try to add the below to the <PropertyGroup> element in your DotNetCoreSqlDb.csproj
<PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
This is because the Microsoft.Composition 1.0.27 is an old nuget package which does not compatible with the your project target framework which is .NET Core 1.1.
The supported framework for the Microsoft.Composition 1.0.27 is as below:
Supported Platforms:
.NET Framework 4.5
Windows 8
Windows Phone 8.1
Windows Phone Silverlight 8
Portable Class Libraries
Reference: Package Microsoft.Composition 1.0.27 is not compatible with netcoreapp1.1

Add Tweetinvi to mono without nuget

I had to make a .NET project in Linux using monodevelop. When I tried monodevelop in Ubuntu I got an error message when I used nuget at certain packages saying my version is 2.8 and I needed 2.12 or earlier.I updated nuget package successfully in terminal but monodevelop uses 2.8 no matter what I do. The nuget package I can't use because of this is Tweetinvi.
In order to solve this I have to either add tweetinvi without using nuget or manage to use nuget 2.12 running from outside monodevelop, which I could not find out how to do.
https://github.com/linvi/tweetinvi
MonoDevelop does not use the NuGet version supplied by Mono that is available from the command line. So updating the command line version of NuGet will not resolve any problems with MonoDevelop.
More recent versions of MonoDevelop use later versions of NuGet.
The last MonoDevelop version 5 release was version 5.10 which supports NuGet 2.8.7.
Support for MonoDevelop 2.12 was added in MonoDevelop 6.0.2. NuGet v3 support was added in MonoDevelop 6.1. Currently MonoDevelop 6 is only available as a FlatPak package unless you build it from source.
If you cannot build MonoDevelop from source you may be able to upgrade NuGet by copying the NuGet.Core.dll from the mono/nuget-binary GitHub repository and copying it into the NuGet addin directory addins/MonoDevelop.PackageManagement, but take a backup copy of the original NuGet.Core.dll before you do that so you can rollback the change if it does not work.
I am the developer of the library and the installation of the library without nuget is not supported on mono because I do not have enough time to look into it.
Tweetinvi supports mono > 4.5 with nuget.

npm install bcrypt on Windows Server 2012

I'm getting this error when trying to install my node modules for my node server.
MSBUILD : error MSB3428: Could not load the Visual C++ component "VCBuild.exe".
To fix this, 1) install the .NET Framework 2.0 SDK,
2) install Microsoft Visual Studio 2005 or
3) add the location of the component to the system path if it is installed elsewhere.
[C:\inetpub\wwwroot\PearsonRealty- API\node_modules\bcrypt\build\binding.sln]
I've tried to install the .NET Framework 2.0 SDK, but it just exits out and never runs. I can't install Microsoft Visual Studio since I'm on an AWS EC2 instance and I wouldn't have enough space for it. Any help would be awesome, thanks.
You do need to install either VCExpress (preferrably at least 2015) or you can try the experimental VC Build Tools solution which is a smaller install than full-blown VCExpress. Otherwise, if you have one, you can try building on a local Windows machine first and then uploading the compiled addon directory to AWS.

Resources