keeper013 / CrossCutterN

A light weight tool to inject customized AOP code into existing assemblies using IL weaving
MIT License
79 stars 10 forks source link

.NET Core 2.0 support #4

Closed Suriman closed 7 years ago

Suriman commented 7 years ago

Has CrossCutterN .NET Core 2.0 support?

keeper013 commented 7 years ago

Hi @Suriman ,

I would like to have this tool to support .net core 2.0 very much. And I've verified that this tool can work with netcore2.0 if compiled under it. However, there are some limitations or concerns for compiling it under netcore2.0:

  1. Mono.Cecil doesn't support reference to Interfaces with generic types for netcore 2.0, this can have a work around with a little effort.
  2. Mono.Cecil doesn't support strong naming for netcore 2.0, this can have a work around to fix the compiling issue, however strong naming feature won't work until Mono.Cecil supports it.
  3. NUnit doesn't seem to work with netcore 2.0 or netstandard 2.0. So though the tool works, test cases can't be executed to guarantee the correctness.
  4. Currently appveyor doesn't seem to very well support compiling projects targeted to multiple frameworks with netcore 2.0 or netstandard 2.0.

Having all the concerns above, it you still would like to verify it with netcore 2.0 soon, I may consider building one new branch for it. But still, considering support is not so ready for netcore 2.0, waiting for a while to have a more mature environment seems to be wise.

What would you think?

Suriman commented 7 years ago

Hi @keeper013. For points 1, 2 and 4 I think we will have to wait. To point 3 could also wait or change the framework to MSTest.

keeper013 commented 7 years ago

Hi @Suriman,

Please correct me if I'm wrong. I was under the impression that mstest only exists in Windows operating system. To ensure the platform independence of CrossCutterN (e.g. to be built in Windows and Linux and Mac under .net framework, .netcore and mono), NUnit is so far the best choice I found.

Thanks.

keeper013 commented 7 years ago

Hi @Suriman , Please check netstandard branch, it is tested locally for netcore2.0 and .net framework 4.6.1. Please note that strong naming feature doesn't work for this branch, as we'll need to wait for Mono.Cecil to complete it. Currently this branch doesn't work in appveyor CI, we still need appveyor to complete it's support for .netstandard and .netcore. However, the branch is tested ok locally.

Please get back to me if anything is missing or not working correctly. Thanks.