- Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
.NET Core 3.0 will bring DefaultDllImportSearchPathsAttribute, and the Roslyn analyzers will flag P/Invokes that lack DefaultDllImportSearchPathsAttribute by default. However, the documentation on DefaultDllImportSearchPathsAttribute is Windows-centric; it doesn't describe how DefaultDllImportSearchPathsAttribute works on Linux, for example.
This is a problem for code such at the following snippet taken from https://github.com/dotnet/corefx/blob/master/src/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.RAND.cs (with a constant replaced with a literal):
[DllImport("System.Security.Cryptography.Native.OpenSsl")] [return: MarshalAs(UnmanagedType.Bool)] private static extern unsafe bool CryptoNative_GetRandomBytes(byte* buffer, int length);The options available for DefaultDllImportSearchPathsAttribute are aimed at Windows, and the documentation doesn't make it clear how to handle this. Is the attribute completely ignored? Are only certain options available?