首页 > 解决方案 > 与 Visual Studio 2019 交叉编译

问题描述

我在 Windows 10 下使用 VS2019,并试图弄清楚如何为非 Windows 平台进行编译。我知道只有某些语言支持交叉编译(C# 就是其中之一)。所以我决定从微软自己的一个例子开始(.NET Core 的控制台应用程序)。当要求 VS2019 创建控制台项目时,它向我显示了各种图像图标,表明它可以为 Windows、Linux 和 macOS 构建 - 但无论我做什么,我只能让它构建 Windows 目标。

经过一番研究,我意识到我需要将此行添加到我的 C# 项目文件中:-

<RuntimeIdentifiers>win10-x64;osx.10.11-x64;ubuntu.16.10-x64</RuntimeIdentifiers>

但即使在添加该行(并重新加载/重新构建项目)之后,它也坚决拒绝构建除 Windows 目标之外的任何东西。在 CodeGuru 上,其中一位开发人员为我尝试了它(在 VS2017 下)并设法让它工作 - 但我已经在 VS2019 和 VS2015 中尝试过它,但我无法让它在其中任何一个中工作。任何想法我可能做错了什么?

[编辑...]谢谢磁控管-如果我按构建- >发布,我会看到与您所看到的完全不同的对话框(在 VS2015 和 VS2019 中都是相同的):-

我的发布对话框

即使我按照“下一步”或“完成”按钮,我也永远不会看到“创建配置文件”选项 :(

标签: c#cross-platform

解决方案


转到构建 > 发布,选择文件夹并单击创建配置文件

在此处输入图像描述

然后单击编辑并将其更改Deployment ModeSelf-contained. 最后,您可以在Target Runtime

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

您可以为每个操作系统创建多个配置文件,并根据需要单独发布每个配置文件。

编辑:

发布的发布对话框适用于 .Net Framework Console 应用程序,而不是 .Net Core 应用程序。.Net 框架仅适用于 Windows,您必须将项目创建为 .Net Core

在此处输入图像描述


推荐阅读