Skip to content

Incomplete DefaultDllImportSearchPaths docs #3205

Open
@Zenexer

Description

@Zenexer

https://github.com/dotnet/dotnet-api-docs/blob/8adb892bc4a3f45fdeaa24f716d2dbd4ba0365ab/xml/System.Runtime.InteropServices/DefaultDllImportSearchPathsAttribute.xml

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Pri3Indicates issues/PRs that are low priorityarea-System.SecurityIssues related to security practices for .NET developers.cross-platformIndicates issues or PRs that relate to content applicable to both Framework and Core.product-questionProduct usage related questionswaiting-on-feedbackIndicates PRs that are waiting for feedback from SMEs before they can be merged

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions