如何在Mac上的Windows上编译C#Visual Studio解决方案

时间:2020-05-19 17:53:36

标签: c# windows macos compilation

因此,我在Windows上有一个要编译的解决方案,以便可以在Mac上使用。在没有Mac的情况下该怎么办?

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

我看到你是一个新的贡献者。欢迎!

我的理解是,iOS或MacOS代码需要在Mac上构建,并且根据Apple制定的政策这是不可商议的。这是当前的链接,该链接描述了如何pair your windows machine to a remote mac会在何时自动进行构建。

您甚至可以通过无线进行部署。例如,按照我的设置方式,我在Windows计算机上构建项目,该项目通过无线方式与MacBook Pro配对,而MacBook Pro通过无线方式部署到iPhone。效果很好。

您的问题的另一个方面是,虽然可以通过使用NET Core来支持或支持更好的NET Standard的代码来使应用程序的逻辑可移植,但问题的症结常常在于UI代码是特定于平台的。

Xamarin移动跨平台开发是Visual Studio 2019社区免费版所支持的一种方法,它没有表达是好是坏的意见。 (可以与Xamarin.Forms和Xamarin.Essentials nuGet软件包一起包含在您的项目中。)这样,您只能使用xaml创建一次UI,而该xaml可以跨设备使用。

我已经使用Xamarin多年了,以我的经验,它在我移植的Android / iOS / UWP应用中表现良好。我相信Xamarin for MacOS现在也在线,但我没有使用过。

您的问题是一个很好的问题,但范围很广。我希望此信息至少能帮助您入门!

答案 1 :(得分:1)

您最好使用Linux(或WSL)运行dotnet publish(因为您需要调用chmod来操纵执行权限)。我有a sample PowerShell script here

简而言之,.NET Core 3.1上的executable需要以下内容。

dotnet publish --self-contained -r osx-x64 -c release -o ..\output\darwin_x64 -p:PublishSingleFile=true
Set-Location output
Set-Location darwin_x64
chmod a+x executable
Compress-Archive * -DestinationPath ..\darwin_x64.zip
Set-Location ..

但是,此方法仅针对控制台应用程序。具有用户界面的应用程序需要花费更多的精力才能移植到Mac,在大多数情况下,您需要Mac。 设置位置..

答案 2 :(得分:0)

据我所知,您只能为.NET core进行编码,但是编译必须在Mac中完成