I’ve had a handful of people ask me about this, so I figured I’d just blog on it.
If you use Feature Folders in ASP.NET Core you may see something like this where Resharper can’t figure out where your Views are. It will outline like your View() calls in red.
When you run the app it still works, but it leaves a little to be desired with the Developer experience. Feature Folders are supported in Resharper and plain ASP.NET, but in Resharper has not added support for Feature Folders to ASP.NET Core yet.
Luckily there’s a workaround, that I was first notified of by Bill Sorensen on my blog post on Feature Folders linked above.
- Install the JetBrains.Annotations NuGet package
- Add the following attributes to the top of your IViewLocationExpander file, above the namespace*
- Re-open your Controller and everything should work
- Note – if you have more custom paths in your
IViewLocationExpander than just those, then you’ll have to add those routes as well.
So your final output should look something like this:
That’s it, now Resharper is happy!
Hope this helps.
If you’re on your build server and running into the problem like this that fails on the NuGet Restore
Package Microsoft.AspNetCore 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.AspNetCore 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
Double check that you have NuGet 4.3 or higher installed.
To fix this on TeamCity 2017.1.2+:
- Go to Administration in the top right
- Tools on the left
- Click Install Version under NuGet.exe
- Choose 4.3 or higher in the dropdown and click Add
Hope this helps someone else on the bleeding edge.
If you get an error message when you try to reference your .NET Standard 1.4 library from a .NET full framework app (like .NET 4.6.1) you may see this error message:
System.IO.FileLoadException : Could not load file or assembly 'System.Net.Http, Version=220.127.116.11, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
The issue is there’s a bug with the System.Net.Http 4.3.0 package. The fix then is to install System.Net.Http 4.3.1 in your .NET Standard library. So your csproj should look like this:
<!-- Add 4.3.1 version explicitly. -->
<PackageReference Include="System.Net.Http" Version="4.3.1" />
<!-- Any other packages here. -->
Now you should be good.
There are a lot of threads on GitHub about this on many different repos, but this fix is only in one of those threads and so I thought I’d post this to make it easier for the next person.