wiresock/ndisapi

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

Closed this issue · 3 comments

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

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...

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?

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.