繁体   English   中英

如何将 Visual Studio.csproj 构建为 Mono?

[英]How to build Visual Studio .csproj as Mono?

我正在使用 Visual Studio 2022。

目标

运行控制台应用程序 (.NET Framework) - 在 Mono 上(没有 Unity 或其他工具)。

控制台应用程序代码:

internal class Program
{
    private static Task Main(string[] args)
    {
        if (Type.GetType("Mono.Runtime") != null)
        {
            Console.WriteLine("Mono!"); // Should be outputted 'Mono!' in console
        }
        else
        {
            Console.WriteLine("Something other!");
        }
        return Task.CompletedTask;
    }
}

控制台应用程序.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net472</TargetFramework>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <DebugType>none</DebugType>
    <DefineConstants>$(DefineConstants)TRACE</DefineConstants>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <DebugType>none</DebugType>
    <DefineConstants>$(DefineConstants)TRACE</DefineConstants>
  </PropertyGroup>

</Project>

我的尝试:

MonoHelper扩展只在超旧版本的 Visual Studio 上可用,并且可能因为没有支持而被弃用。

Mono msbuildcmd中执行此行后出现错误:C:\Program Files\Mono>msbuild "path_to_project_here.csproj" -p:Configuration=Release

"path_to_project_here.csproj" (default target) (1) ->
  path_to_project_here.csproj : error MSB4237: The SDK resolver type "Dot
NetMSBuildSdkResolver" failed to load. The type initializer for 'Microsoft.DotNet.DotNetSdkResolver.VSSettings' threw a
n exception.

xbuild也被弃用,而是使用Mono msbuild

可能我不会将MonoDevelop用于此类事情,应该有简单的方法。

将 .NET Framework only 项目转换为 SDK 样式不会给您带来太多好处,因为这增加了对 .NET Core SDK(您未安装)的构建时间依赖性。

请创建一个纯 .NET Core 控制台应用程序(带有do.net new console ),因为建议用于跨平台场景。

请安装 .NET Core SDK (.NET 6 or 7) 然后使用do.net build来编译此类项目。 然后 .NET CLI 使用 .NET 框架参考程序集构建可执行文件,您可以使用mono executable_name.exe在 Linux 上运行它。但请注意,如果您的控制台应用程序仅使用任何 Windows API/依赖项。

MonoDevelop 在这里完全无关紧要。

Mono 和 MonoDevelop 都将消失。 .NET 芯即未来。

  1. 安装 Mono (选择你的OS

通过 Visual Studio 作为标准构建构建您的应用程序,然后打开cmd并 cd 进入Mono所在的路径,在我的例子中这是( Windows OS )之后 - 运行这个构建的应用程序。

C:\Program Files\Mono>作为 x64;
对于 x86 Mono位于此处C:\Program Files (x86)\Mono> (mono 所在的路径)

  1. 只需写入cd C:\Program Files\Mono>
  2. mono “path_to_the_compiled_executable_in_VS.exe”(可执行文件应该有入口点,在这种情况下控制台应用程序会很棒)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM