Nikey646 / VndbSharp

A C# Vndb API Library. #OriginalNamingScheme
MIT License
18 stars 4 forks source link

SecureStringMarshal not available #50

Closed micah686 closed 5 years ago

micah686 commented 5 years ago

When attempting to build VndbSharp for Net45 with UserAuth, VS gives an error of "The name 'SecureStringMarshal' does not exist in the current context" It looks like it is available for netstandard1.3, but not for net45.

Nikey646 commented 5 years ago

Interesting.

What did you do to try and have it build for .Net 4.5? It will complain if you try for any other version of the framework, EG: 4.7.2.

Should probs fix that, via making the conditional !== netstandard instead.

micah686 commented 5 years ago

How would you force it to build targeting a different framework, like net 4.7.2? I checked the VndbSharp properties, and the Target framework dropdown is grayed out. As for anything I changed, I downloaded the latest master, and the only thing I changed is adding "UserAuth; to the conditional compilation symbols.

micah686 commented 5 years ago

Also, do you have a discord, so that I might be able to work with you more closely on resolving issues with VndbSharp?

Nikey646 commented 5 years ago

You would need to edit the project file itself to add an additional target framework.

It looks like the issue was simply that System.Security.SecureString which provided the SecureStringMarshal method used in VndbSharp requires .Net 4.6 at minimum. So i've upgraded the minimum required framework version to 4.6, and made the System.Security.SecureString package available for both .Net 4.6 and .Net Standard 1.3 builds if the UserAuth conditional symbol is provided.

This change may require you to upgrade your project(s) to .Net 4.6 as well, but there isn't much I can do about that, since I don't fancy maintaining my own SecureString Marshalling code.