我們的項目結構是這樣,C++/CLI支持在.net核心
native.dll
: - 這包含用C \ C++中的純本地代碼。 這個native.dll公開了一些使用* def文件的函數。
Wrapper Library(wrapper.dll compiled with .Net framework v4.0)
: - 爲了使用的native.dll
功能,一個Wrapper lib(wrapper.dll)
使用:clr\oldsyntax
寫在C++\CLI
。該包裝具有全部 代碼Interoperability
和Marshalling
。
Application(Console App v4.0)
直接使用wrapper.dll
使用提供的功能 native.dll
。
現在這個項目需要運行在.Net Core。這意味着我們將有一個 .Net Core application
這將reference wrapper.dll
而這又將指 native.dll
。
我知道這不會直接工作。但是問題是.Net Core(CoreCLR)是否支持 C++ \ CLI(clr \ oldsyntax)運行時環境?
如果否,那麼這個應用程序可能的解決方案是什麼?
如果不會間接工作。運行C++/CLI代碼(模塊初始化程序)所需的基本支持在.NETCore中不可用。很少有實際的平臺目標可以執行該本機代碼,「native.dll」通常只能運行在桌面版的Windows上。所以這不是一個真正的問題。 –
@HansPassant: - 你說過「很少有實際的平臺目標可以執行這個本地代碼」,請你詳細說明一下嗎?確實意味着目前沒有辦法運行這些類型的項目。網絡核心? – User1234
爲什麼選擇.NETCore?因爲它在那裏或因爲你必須?你只需要當你希望你的程序在Linux或OSX或移動設備上運行。當然,哪些平臺不能運行該DLL中的代碼。 –