混合模式程序集(C++/CLI项目)是否可以在.NET Core上运行?

Nic*_*pat 8 .net c++ mixed-mode c++-cli .net-core

我有一个使用C++/CLI项目的代码库,它通过瘦包装类将C++类公开给CLR.例如...

C++项目中的C++代码

class Foo {
    public Foo(bool wat) { /* do the things */ }
};
Run Code Online (Sandbox Code Playgroud)

混合模式程序集中的C++/CLI代码(C++/CLI项目)

public ref class ManagedFoo {
    Foo * foo;
public:
    ManagedFoo (bool wat) { foo = new Foo(wat); }
    !ManagedFoo () { delete foo; }
    ~ManagedFoo () { this->!ManagedFoo (); }
};
Run Code Online (Sandbox Code Playgroud)

据我所知,混合模式程序集几乎只能在Windows .NET上运行.我希望我不需要重新考虑组件和使用P/Invoke,这将给我跨平台支持.

有谁知道.NET Core是否支持混合模式程序集?其他想法是受欢迎的.

Mat*_*ský 5

C++/CLI上下文中的非托管代码始终是特定于平台的,并针对特定操作系统(Windows)和特定CPU体系结构(x86/x64)进行编译.C++/CLI中的非托管代码最终与使用C++编译器编译的实际C++代码非常相似.由于混合模式程序集可以包含本机代码,因此它们绑定到特定的OS和CPU体系结构.