C#Roslyn是否在Android上工作(与Xamarin一起)?

C#Roslyn是否在Android上工作(与Xamarin一起)?,c#,android,compilation,cross-platform,roslyn,C#,Android,Compilation,Cross Platform,Roslyn,我最近使用Roslyn在游戏应用程序的运行时编译和执行代码。多亏了一些有用的资源,比如和,我成功地在windows10上的C#Console Net核心项目上编写了一个程序,该项目执行位于应用程序根目录下的txt文件中的代码 using System; namespace Test15 { public class Program { public static int Main() { System.Console.Wr

我最近使用Roslyn在游戏应用程序的运行时编译和执行代码。多亏了一些有用的资源,比如和,我成功地在windows10上的C#Console Net核心项目上编写了一个程序,该项目执行位于应用程序根目录下的txt文件中的代码

using System;

namespace Test15
{
    public class Program
    {
        public static int Main()
        {
            System.Console.WriteLine("Hello World from external Dll !");
            System.Console.WriteLine("And it work !");
            return 10;
        }
    }
}
我不打算分享代码,因为它与Windows 10上的C#Console Net核心项目非常相似,而且这个程序在该项目中运行良好

所以下一步,我尝试让这个程序在一个使用Xamarin的Android项目上和C#一起工作

第一个问题:当尝试添加对Roslyn似乎必要的nugget软件包“Microsoft.CodeAnalysis”时,我出现以下2个错误:

Unable to resolve reference 'Humanizer', referenced by `Microsoft.CodeAnalysis.CSharp.Workspaces`.
Add NuGet package or assembly reference for 'Humanizer', or remove the reference to
'Microsoft.CodeAnalysis.CSharp.Workspaces'. Game2

Unable to resolve reference 'SQLitePCLRaw.core', referenced by `Microsoft.CodeAnalysis.Workspaces`.
Add NuGet package or assembly reference for 'SQLitePCLRaw.core', or remove the reference to
'Microsoft.CodeAnalysis.Workspaces'. Game2
(翻译自法语)

将“Microsoft.CodeAnalysis”nugget包替换为“Microsoft.CodeAnalysis.CSharp”时,两个错误都会消失

但是,在运行时,添加MetadataReference不起作用。 例如,在我使用的Console项目中:
MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location)

要将MetadataReference添加到mscorlib.dll,但在Android项目上,它会崩溃,因为
typeof(object).GetTypeInfo().Assembly.Location
返回
“mscorlib.dll”
,而不是像
“C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.9\System.Private.CoreLib.dll”这样的东西,我想是因为我们在安卓系统上。(与其他MetadataReference相同)

因此,当调用方法
csharpcomilation.Create()
时,“reference”参数是一个null MetadataReference数组,它会崩溃

基于此,我认为(但我不确定)Roslyn无法在android上工作,因为缺少System.Object的位置

那么,有人能确认(或宣布)是否有办法在Android上与Roslyn合作吗

(如果您知道在任何设备上编译/执行或“解释”C#代码的其他方法,则奖励点)


感谢阅读并保持安全。

似乎其他人也有此问题:-可能尝试ping github以寻求解决方案?是的,我将尝试将问题发布到其他地方,以确认这是否正常。奇怪的是,当我使用roslyn的脚本功能(而不是编译功能)时,它也会崩溃(因此没有生成.dll)。无论如何,我仍然在寻找一种跨平台的脚本/编译语言。