wiresock / ndisapi

Windows Packet Filter library for network packet interception and manipulation, suitable for custom firewall, VPN and traffic analysis applications.
https://www.ntkernel.com/windows-packet-filter/
MIT License
289 stars 78 forks source link

Why does ndisapi/ndisapi.net/ndisapicl.vcxproj target .net 4.6.1? #4

Closed frankzha closed 4 years ago

frankzha commented 5 years ago

In ndisapi/ndisapi.net/ndisapicl.vcxproj, the target framework is as below:

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

We are trying to run .net ndispapi.dll on windows 7 and above. But windows 7 is .net 3.5. What is the reason the dll depends on 4.6.1? 4.6.1 is shipped with Windows 10.

Thanks, Frank

wiresock commented 5 years ago

You are right, .net 4.6.1 is shipped with Windows 10. But it is not a big deal to install 4.6.1 on Windows 7 either. At the same time .net 3.5 is not available on Windows 10 by default and you also have to install it. So whatever .net version you choose you still have to install something somewhere...

frankzha commented 5 years ago

My concern is for general windows 7 users, probably they don't know how to install .Net 4.6.1 or they don't want to install it.

Is it possible you release 2 dotnet ndisapi.dll: one for .Net 3.5 (win 7 users), the other for .Net 4.6.1 (win 10) users? I don't know if there is any hard dependency for ndisapi.dll on 4.6.1.

Our goal is after the users install our software, it just works without the need to install extra .Net framework. Is it possible?

wiresock commented 5 years ago

I had not tried to target ndisapi.net to .net 3.5, but I think it is doable: https://github.com/MicrosoftDocs/cpp-docs/blob/master/docs/build/how-to-modify-the-target-framework-and-platform-toolset.md

However, the required modifications (see the link above) will make the build process more complex (Windows 7.1 SDK is needed), so I'm not sure if this is better that installing the required .net framework from the installer along with other components.