Skip to content
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

Dotnet standard port #3175

Open
wants to merge 57 commits into
base: main
Choose a base branch
from
Open

Dotnet standard port #3175

wants to merge 57 commits into from

Conversation

DavidPiringer
Copy link
Contributor

Migration branch for a lot of API projects to migrate from .net framework to .net standard. It was needed to add and upgrade some NuGet-packages to stay functional. Also, the PluginInfrastructure was split into two separate projects:

  • HeuristicLab.PluginInfrastructure ... handles type lookups and initializations
  • HeuristicLab.PluginInfrastructure.Extension ... handles AppDomains and UI

Furthermore, it was necessary to add build tasks (copied from https://github.com/Vanmodeus/HeuristicLab/tree/build_improvements) to generate the Plugin.cs and AssemblyInfo.cs files correctly. This requires one additional build step, which can be done with the build script as usually.

@gkronber gkronber self-requested a review October 7, 2022 11:37
@gkronber
Copy link
Member

gkronber commented Oct 7, 2022

Notes for my review:

  • 98abcd2 Inclusion of HEAL.Attic as a package reference in all projects instead of using the wrapper plugin in ExtLibs. Do we want this?. Has the wrapper plugin (not needed anymore) been removed? Are PluginDependencies updated accordingly?
  • ErrorHandlingUI commented in bd7f208, and throwing exception instead of handling in 621a9e9
  • DataPreprocessing and Orientieering converted back from .NET Standard to Framework in 5bbc740
  • HeuristicLab project (startup) references a list of packages that are not referenced in the project itself b95bb3d. Same list of package references was added to multiple other projects that do not seem to use those packages.
  • <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath> set for many projects in 4af77c8. Do we want this?
  • Version for protobuf plugin updated in 38edea4 without updating protobuf assembly itself
  • Assembly binding redirect for protobuf in OrTools plugin in must be tested. I think there was an issue because OrTools is using external solvers that themself require an older version of protobuf. ca925b5
  • Assembly binding redirect for System.Drawing.Common and <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> in 473f35ba for DataPreprocessing and Orienteering projects and in 6e1373a for HeuristicLab.Tests
  • Remove all code for plugin updates from PluginInfrastructure (instead of commenting out code) 99b6c3b
  • check that all project refs for ExtLibs plugins have been removed from main solution projects (2752801)
  • Reference to System.Drawing added in HeuristicLab.Tests project in dfdeb03
  • System dlls are now included in PluginFiles for Hive jobs (e.g. System.Drawing.Common, System.Configuration.ConfigurationManager, ...) 77d1c67. This bloats the packages transmitted between clients and Hive server. Probably better to reference those assemblies directly from the Hive worker.
  • HeuristicLab.Build solution (cd40ca9) has to be built first. Otherwise build does not work because of missing bin/HeuristicLab.Build.dll. The build task processes .frame files, protobuf files and merges config files.
  • HeuristicLab 3.3 solution and HeuristicLab 3.3 DotNetStandard solution does not build (missing reference to System.Drawing in HeuristicLab.Common.Resources)
  • HeuristicLab 3.3 DotNetStandard solution contains some of the ExtLib projects (i.e. alglib)
  • Build errors when trying to build HeuristicLab 3.3 DotNetStandard with .NET 6 from the command line:
    - Non-string resources require the property GenerateResourceUsePreserializedResources to be set to true.
    - The reference assemblies for .NETFramework,Version=v4.7.2 were not found

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants