lkosson / reportviewercore

Recompilation of Microsoft.ReportViewer for .NET Core 3.1+
427 stars 123 forks source link

.NET 8 Compatibility #160

Closed xts-velkumars closed 1 year ago

xts-velkumars commented 1 year ago

Good day @lkosson,

Whether it supported in .NET 8 ?

lkosson commented 1 year ago

I haven't tested it yet. There shouldn't be any major issues, apart from Microsoft.CodeAnalysis.VisualBasic package reference update as in previous .NET releases.

bbteam17 commented 1 year ago

Hi , after upgrade to .Net 8 , throw below exception , in .Net7 it is working without any problem .

Microsoft.Reporting.NETCore.LocalProcessingException: An error occurred during local report processing. ---> Microsoft.Reporting.DefinitionInvalidException: The definition of the report '' is invalid. ---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: An unexpected error occurred in Report Processing. ---> System.MissingMethodException: Method not found: 'System.Exception Roslyn.Utilities.ExceptionUtilities.get_Unreachable()'. --- End of inner exception stack trace --- at Microsoft.Reporting.NETCore.LocalReport.EnsureExecutionSession() at Microsoft.Reporting.NETCore.LocalReport.InternalRender(String format, Boolean allowInternalRenderers, String deviceInfo, PageCountMode pageCountMode, CreateAndRegisterStream createStreamCallback, Warning[]& warnings) at Microsoft.Reporting.NETCore.LocalReport.InternalRender(String format, Boolean allowInternalRenderers, String deviceInfo, PageCountMode pageCountMode, String& mimeType, String& encoding, String& fileNameExtension, String[]& streams, Warning[]& warnings) at Microsoft.Reporting.NETCore.LocalReport.Render(String format, String deviceInfo, PageCountMode pageCountMode, String& mimeType, String& encoding, String& fileNameExtension, String[]& streams, Warning[]& warnings) at Microsoft.Reporting.NETCore.Report.Render(String format, String deviceInfo, String& mimeType, String& encoding, String& fileNameExtension, String[]& streams, Warning[]& warnings) at Microsoft.Reporting.NETCore.Report.Render(String format, String deviceInfo) at Microsoft.Reporting.NETCore.Report.Render(String format)

lkosson commented 1 year ago

Looks like mismatched Microsoft.CodeAnalysis package version reference. I'll look into it and push updated nuget package later this week.

bbteam17 commented 1 year ago

Yes you right , after upgrade to .Net8 then throw below exception error NU1107: Version conflict detected for Microsoft.CodeAnalysis.Common. Install/reference Microsoft.CodeAnalysis.Common 4.5.0 directly to project xxx.Api to resolve this issue. error NU1107: xxx.Api -> Microsoft.EntityFrameworkCore.Design 8.0.0 -> Microsoft.CodeAnalysis.CSharp.Workspaces 4.5.0 -> Microsoft.CodeAnalysis.Common (= 4.5.0) error NU1107: xxx.Api -> ReportViewerCore.NETCore 15.1.18 -> Microsoft.CodeAnalysis.VisualBasic 4.4.0 -> Microsoft.CodeAnalysis.Common (= 4.4.0). 2>Done building project "xxx.Api.csproj" -- FAILED.

bbteam17 commented 1 year ago

after add manuel <PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.5.0" /> compiled with warning
warning NU1608: Detected package version outside of dependency constraint: Microsoft.CodeAnalysis.VisualBasic 4.4.0 requires Microsoft.CodeAnalysis.Common (= 4.4.0) but version Microsoft.CodeAnalysis.Common 4.5.0 was resolved. but then throw exception in runtime as above The definition of the report '' is invalid. ... thx

lkosson commented 1 year ago

.NET 8 scaffolding support calls for Microsoft.VisualStudio.Web.CodeGeneration.Design version 8, which transitively depends on Microsoft.CodeAnalysis version 4.8, which is available only as a prerelease, which I'm hesitant to reference.

Also VS 17.8, which is required by .NET 8 SDK, is bugged beyond recognition so I had to rollback to 17.7. That means I can't compile and test RVC against newest framework.

Until Microsoft gets their shit together, ReportViewerCore won't support .NET 8.

crazycga commented 1 year ago

Wow that could be a while. Nut .NET 8 was officially released - what? - four days ago?

lkosson commented 1 year ago

On second thought, waiting for them to fix VS 17.8 [1], [2], [3] and scaffolding references might not be best course of action if the package is to be released this year.

I'm compiling and packaging .NET 8 version by hand and referencing same prerelease assemblies as VS does. RVC version 15.1.19 should be available on nuget any minute now. Let's hope nothing breaks.

bbteam17 commented 1 year ago

Hi I tested with new version , after add below refs, then compiled , and its working now. thx . image image

lkosson commented 1 year ago

You shouldn't need those explicit references to Microsoft.CodeAnalysis packages in your project unless you are referencing some other packages that break those dependencies. Judging from your earlier comment, it most likely is xxx.Api package, which references EF Core, which asks for 4.5.0 version of Microsoft.CodeAnalysis. In that case manually resolving the dependency as you did is the only workaround.

xts-velkumars commented 1 year ago

@lkosson, Thank you