Mario Emmenlauer created THRIFT-5169:
----------------------------------------
Summary: Improve dotnet project files for the .NET Standard build,
and integrate with cmake
Key: THRIFT-5169
URL: https://issues.apache.org/jira/browse/THRIFT-5169
Project: Thrift
Issue Type: Improvement
Components: netstd - Library
Affects Versions: 0.13.0
Reporter: Mario Emmenlauer
Assignee: Mario Emmenlauer
I'm working on a number of improvements for the .NET Standard Visual Studio
project files. Currently it seems to me that the following changes are required:
* I can not use the detection of the thrift compiler using the section
{{<Exec Condition="'$(OS)' == 'Windows_NT'" Command="where thrift"
ConsoleToMSBuild="true">}} because it breaks the build for me. But I am also
under the impression that this is not clean by design. Autotools place the
thrift compiler into a specific directory, and I've modified the cmake build to
also do that. I think this is sensible, that all tutorials and tests use *only*
the thrift compiler from the current build, and fail otherwise. This seems
sensible because any other system-installed thrift compiler may behave
different and may not lead to the desired result of tests/tutorials, which
becomes very hard to debug with the auto-detection mechanism. * The Visual
Studio project files for the tests and tutorial currently all reference the
project file of the Thrift library. This breaks the build for me because the
thrift build is using .NET Standard 2.0, whereas all consumers are (in my eyes
correctly) using .NET Core 3.1. I can not mix and mingle the different .NET
platforms due to hard-to-resolve errors with dependency ambiguities. However
there seems to be a much cleaner solution: Instead of referencing the thrift
library project file, it is possible to reference the Thrift.dll assembly. This
is how an external consumer of the library would be implemented, so it is
closer to the real world use case. Additionally it has the benefit to work with
different .NET platforms without dependency issues.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)