-
Notifications
You must be signed in to change notification settings - Fork 259
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Quickstart sample throws exception with 4.7.2 #366
Comments
Can you share the csproj
…On Fri, Aug 28, 2020 at 7:44 AM krmr ***@***.***> wrote:
*Describe the bug*
A basic sample following the Quickstart throws the following exception on
Build():
System.TypeLoadException: Method 'GetItem' in type
'NullRazorProjectFileSystem' from assembly 'RazorLight, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=null' does not have an implementation.
thrown at RazorLight.DefaultRazorEngine.get_Instance()
*To Reproduce*
Steps to reproduce the behavior:
- Create new project for console app using 4.7.2
- Add code based on quickstart in main
namespace RazorLightTest
{
using System;
using System.Globalization;
using System.Threading.Tasks;
using RazorLight;
public class Program
{
static async Task Main(string[] args)
{
CultureInfo.CurrentUICulture = new CultureInfo("en-us");
var engine = new RazorLightEngineBuilder()
.UseEmbeddedResourcesProject(typeof(Program))
.UseMemoryCachingProvider()
.Build();
var template = "Hello, @Model.Name. Welcome to RazorLight repository";
var model = new ViewModel { Name = "John Doe" };
var result = await engine.CompileRenderStringAsync("templateKey", template, model);
Console.WriteLine(result);
}
public class ViewModel
{
public string Name { get; set; }
}
}
}
- Add RazorLight via "Manage NuGet packages..."
- Update all NuGet packages to latest version (make sure to uncheck
"Include prelease")
- Compile & Run
*Expected behavior*
The application runs without problems and prints "Hello, John Doe. Welcome
to RazorLight repository" to the console.
*Information (please complete the following information):*
- Windows 10
- .Net Framework 4.7.2
- 2.0.0-beta9
- package from NuGet
- Visual Studio Enterprise 2019
*Additional context*
The best solution right now if of course not to update the NuGet packages
but stick to the original versions. The downside is that depending on the
context this could cause NuGet to show packages to consolidate.
So if the code does not work with the more recent versions I wonder if
there is a way to restrict the versions e.g. setting a maximum version of
<3.0 on the dependency in the package for .NET Standard
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#366>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADNH7JWTMFBUH6BZUN6H73SC6KCHANCNFSM4QOBJHMQ>
.
|
@krmr I tried to reproduce the issue and could not. I don't think the code by itself is enough to reproduce the issue.
|
Thanks for trying, from you description i think the critical part might be missing: This pulls in version 3.17 for packages that seem to cause the issue. After manually downgrading the Razor packages to 2.20 the exception goes away. It's just that on my first try I updated all packages as I always do and that resulted in the exception. It took me a while to understand what the problem was and how to resolve it. |
For a full repro solution please see krmr/RazorLight366Repro |
Got it. So the issue is we don't put version ranges on the RazorLight.csproj That makes a ton of sense and would likely solve some other bugs. Would you be open to submitting a PR? |
@krmr I reached out to someone who is interested in helping maintain the project if they'd like to push the packages to nuget.org. If I don't hear back from them, I'll update beta10 tomorrow. Thanks for your help. |
Also see #421 (comment) |
Yes, if people are using packages.config, they are likely to have issues consuming .NET Core libraries. |
Describe the bug
A basic sample following the Quickstart throws the following exception on Build():
System.TypeLoadException: Method 'GetItem' in type 'NullRazorProjectFileSystem' from assembly 'RazorLight, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
thrown at RazorLight.DefaultRazorEngine.get_Instance()
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The application runs without problems and prints "Hello, John Doe. Welcome to RazorLight repository" to the console.
Information (please complete the following information):
Additional context
The best solution right now if of course not to update the NuGet packages but stick to the original versions. The downside is that depending on the context this could cause NuGet to show packages to consolidate.
So if the code does not work with the more recent versions I wonder if there is a way to restrict the versions e.g. setting a maximum version of <3.0 on the dependency in the package for .NET Standard
The text was updated successfully, but these errors were encountered: