请再给我一波更新谢谢:C++/CLI和.NET Core

请再给我一波更新谢谢:C++/CLI和.NET Core

作者:BlogUpdater |  时间:2019-11-03 |  浏览:1974 |  评论已关闭 条评论

首版出炉
浓重宣布:C++/CLI首次在.NET Core 3.1中得到支持!
此项支持被包含在Visual Studio 2019 update 16.4 Preview 2中。我们希望你能喜欢这个版本并且发送给我们你的使用反馈。如果你想知道更多信息以及它的Roadmap,可以参见我之前的一篇文章:<<C++/CLI和.NET Core的未来>>。

如果想尝尝鲜的话,首先你需要确保所有必要的组件已经安装。C++/CLI桌面开发选项时一个可选的组件,你可以在安装界面的右边找到并勾选它。如下图所示:

另外,还需要安装的是.NET Core 跨平台开发组件,这个组件将安装所有需要的东西,包括.NET Core 3.1的SDK。

创建第一个C++/CLI .NET Core项目
首先,你需要创建一个”CLR Class Library (.NET Core)”或者”CLR Empty Project (.NET Code)”项目。这个Class library模板项目将包括一些额外的样板代码用来建立一个示例工程和用来加快编译速度的预编译头。这个空项目则是为了从已有的C++/CLI代码里创建工程。另外,我们不推荐将现有的C++/CLI工程重新迁移到.NET Core。

当前还没有一个使用.NET Core的C++/CLI的控制台工程或者Windows工程。你需要将你的程序的入口点放到C++/CLI的代码之外。通常来说,我们强烈建议保持C++/CLI工程足够小巧,仅仅使用它来处理.NET Core和其他C++代码的互操作性问题。

当创建完这些工程后,你就可以引用其他的.NET Core工程了,就像其他类库项目一样 – 当然,有个需要注意的地方。
.NET Core工程一般都是架构无关的,你可以从配置管理器中的”Any CPU”和MSIL编译日志中可以看出来这点。这个对于所有.NET Core工程是一个默认设定。如果你引用其他的C++/CLI类库工程,则你必须为那些Non-C++工程显式指定一个架构,而不是”Any CPU”。

你可以在工程的配置管理器中设定工程的架构。
如果架构不能得到匹配,则你将会看到以下警告,并且在运行时尝试加载C++/CLI 类库工程会失败。

为了解决这个问题,请确保一个解决方案中的所有工程都使用相同的架构(例如x86或者x64)。如果你使用ASP.NET Core,则还需要有另外一个考虑。你的工程还需要和IIS Express的架构相匹配。通常,这个架构是x64。如果你在加载页面的时候出现”500 Server error”的错误,则很有可能是架构不匹配造成的。

有任何问题和建议,请告诉我们(他们)。

总结
C++/CLI,又是你啊!你的存在感是越来越强了。

标签:

评论已关闭。