ironfede / openmcdf

Microsoft Compound File .net component - pure C# - netstandard 2.0
Mozilla Public License 2.0
309 stars 76 forks source link

Update project files to new csproj format #71

Closed tstenner closed 1 year ago

tstenner commented 4 years ago

This PR migrates the project files to the new csproj format and puts common parts in Directory.Build.props files. Thus, some settings like the version number need to be changes in only a single place.

The third commit adds a Github Actions CI configuration to build the nuget packages on Github Actions. The C# integration isn't as polished as on Azure Pipelines, but it's better integrated in Github, no external account is needed and the configuration is a bit simpler.

Lastly, I merged the tests for issues #14 and #15 and reduced the file sizes to just trigger the original bugs, i.e. write Int32.INT_MAX + 1 bytes. Otherwise, Github Actions didn't finish for some time.

ironfede commented 4 years ago

Thank you very much for your interest in OpenMcdf. I would kindly need some information on your changes because I agree with some changes you propose but I don't fully understand others. Why, for example, have you removed net40 TargetFramework from build process? I've also some issue with Structured Storage example app. After building a local version of your pr, it crashes on startup complaining that loading Be.Windows.Forms.Hexbox requires a strong name assembly. Do you have similar issue in your environment? Many thanks @tstenner Federico

tstenner commented 4 years ago

Thanks for the quick reply (and of course, this library :-)

Why, for example, have you removed net40 TargetFramework from build process?

Three reasons: the "About"-Box only referenced .NET Standard 2.0 (backwards compatible with at least .NET 4.6.1), most of the testing dependencies require at least net45 or netstandard20 and I didn't have the reference assemblies installed. I've re-added them in the last commit and ran the tests locally, but the GH Actions CI only builds and runs the netstandard libs / runs the tests on .NET Core.

I've also some issue with Structured Storage example app. After building a local version of your pr, it crashes on startup complaining that loading Be.Windows.Forms.Hexbox requires a strong name assembly. Do you have similar issue in your environment?

After removing all build folders I could reproduce it, and also encountered an other problem that seems to be a bug in the build SDK. I've fixed it and pushed another commit. As an added bonus, it now pulls the Hexbox dependency from nuget instead of storing the DLL in the repo.