files-community/Files

Code Quality: Replace references to Vanara and WinForms with CsWin32

已關閉

#15,000 建立於 2024年3月19日

 (11 則留言) (5 個反應) (0 位負責人)C# (2,719 個分叉)batch import
help wanted

倉庫指標

星標
 (43,502 顆星)
PR 合併指標
 (平均合併 11天 15小時) (30 天內合併 61 個 PR)

描述

Description

We're working on utilizing Native Aot in the application, however, runtime marshaler is one of the blocker against this. Vanara uses loads of runtime marshaler via DllImport and ComImport and we're working on replacing it with CsWin32, ultimately removing its reference completely.

Concerned code

  • Vanara references
  • DllImport we explicitly use within the codebase

Gains

  • AoT compliant codebase
  • Less 3rd party references

Requirements

  • Replace DllImport with CsWin32

Comments

CsWin32 requires you to add interfaces, functions, constants, enums, snd etc in NativeMethods.txt placed in Files.App.CsWin32. #define'd constants also need to be written in that text file and use like "PInvoke.CMF_DEFAULT" (They don't get placed in a particular namespace). For more info, download ILSpy and win32metadata.winmd in order to see the full projections.

貢獻者指南