Xamla / ROS.NET

ROS .NET Core Client Library
http://robotics.cs.uml.edu/
BSD 2-Clause "Simplified" License
16 stars 11 forks source link

add target .NET Framework 4.6.2 #4

Closed rgarofalo closed 6 years ago

rgarofalo commented 6 years ago

added the possibility to compile the ros.net library for .NET framework 4.6.2

andreaskoepf commented 6 years ago

Hey @rgarofalo ! Thanks a lot for your PR. I will try to review & merge during the next 24h.

rgarofalo commented 6 years ago

I would have tried to do other tests with the examples already written, but the "messages" project is missing

andreaskoepf commented 6 years ago

The Messages project normally is generated by the YAMLParser tool? The message serializer/deserializer generator is one of the problematic parts of ROS.net .. we had not yet time to really work on this ugly part. We just added the functionality that it is possible to have multiple Message-DLLs which was not originally possible in ROS.net .. but no doubt a rewrite of the YAMLParser mess would be appropriate.

andreaskoepf commented 6 years ago

I merged your changes and did some cherry-picking, please see https://github.com/Xamla/ROS.NET/commit/27599e327c483cb0dabcc272d265c64592016680

e.g. I also used GetRequestStreamAsync()/GetResponseAsync() since these async methods seem to be available in .net 4.62

andreaskoepf commented 6 years ago

(Please do commit further changes to this branch/PR. It has already been merged.)

rgarofalo commented 6 years ago

e.g. I also used GetRequestStreamAsync()/GetResponseAsync() since these async methods seem to be available in .net 4.62

unfortunately these calls for windows application did not return anything, so I changed them

andreaskoepf commented 6 years ago

unfortunately these calls for windows application did not return anything, so I changed them

That is interesting. I will later create a little .net 4.6 test app and try out some things.

andreaskoepf commented 6 years ago

Hi Roberto, unfortunately I have to tell you that I have to completely revert the changes to support .net 4.62 .. it breaks our jenkins builds with very strange errors with .Net Core 2.1.302 ... it builds on another machine with 2.1.301 without problems but we will not make that change backwards. Maybe in the future it is possible to have ROS.net for multiple platforms .. but I have today spent half of the day tracking these build issues down and have no real fix. sorry.

andreaskoepf commented 6 years ago

Good news .Net v4.6.2 is back in - I found a workaround for our Jenkins builds. By adding -f netcoreapp2.1 -r ubuntu.16.04-x64 -m:1 (especially the -m:1 option) to our build and publish calls the strange errors disappeared.

Just for the records: From the symptom everything looked like a very an old issue from the dotnet core 1.0 days: https://github.com/dotnet/sdk/issues/475

rgarofalo commented 6 years ago

I'm happy to hear this news, at least all the work done will not be wasted.

I'll let you know if I can start YAMLParser, for now give me an error on the argument "Debug", certainly before using it I'll have to study it a little

andreaskoepf commented 6 years ago

Ah, I think we added real argument parsing to YAMLParser a couple of weeks ago.. pleas try executing it with --help. You can specify the location of the folder that contains the ROS msg/srv/action definitions by using the -m option, e.g. you can run with something like -m .. -r Debug. We will mention this in the readme file as soon as the major bug have been fixed.