bflattened / bflat

C# as you know it but with Go-inspired tooling (small, selfcontained, and native executables)
GNU Affero General Public License v3.0
3.63k stars 104 forks source link

How to reference COM dll in argument? #98

Open xiaoyuvax opened 1 year ago

xiaoyuvax commented 1 year ago

Problem compiling .csproj that has <COMReference>, the -r opt doesn't work. Check out detailed case description: https://github.com/xiaoyuvax/bflata/issues/2#issuecomment-1497336755

graysuit commented 1 year ago

Adding my 2 cents... Note that COM is really important. Many things in dotnet aren't supported helped by COM. Like restore deleted files from recycle bin, native file dialogs etc

MichalStrehovsky commented 1 year ago

Built-in COM interop a la desktop .NET is not planned (AFAIK COMReference/Tlbimp doesn't even work with .NET 7, it's a .NET Framework thing).

The way to do COM is ComWrappers. There are some ready-made ComWrappers for WinForms here: https://github.com/kant2002/WinFormsComInterop. A source generator for it is also in the works over in the runtime repo for .NET 8 (bflat is still based on .NET 7).

The project in https://github.com/xiaoyuvax/bflata/issues/2#issuecomment-1497336755 looks like a .NET Framework project. That won't work well. The first step is to migrate to .NET 7, then try bflat. It doesn't even make sense to consider bflat for Framework.