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?