我正在尝试使用OSX上的coreCLR运行一个应用程序(使用xbuild构建)并面临一些问题。
之前我在OSX上安装了“mono-complete”。我使用“xbuild”构建我的应用程序,然后使用“mono my.exe”运行它。这一切都很好。
我想看看我的应用程序“my.exe”是否与coreCLR兼容,是否可以运行它。
所以我为OS X安装了dnx sdk。
$ dnvm list
Active Version Runtime Arch OperatingSystem Alias
------ ------- ------- ---- --------------- -----
1.0.0-beta8-15120 coreclr x64 darwin
* 1.0.0-beta6 mono linux/darwin default
此时如果我运行“dnx my.exe”,它运行正常。 (我假设我在这里使用单声道运行时?)
但是如果我切换到coreCLR,“dnx my.exe”不起作用。见下文:
$ dnvm use 1.0.0-beta8-15120 -r coreclr
Adding /Users/test_user/.dnx/runtimes/dnx-coreclr-darwin-x64.1.0.0-beta8-15120/bin to process PATH
$ dnx my.exe
'my.exe' does not contain a static 'Main' method suitable for an entry point
Trace/BPT trap: 5
我做错了吗?
我是否必须使用coreCLR sdk显式编译我的应用程序?
我还注意到人们正在使用一种叫做“corerun”的东西。我假设它类似于“mono”命令,它只使用coreCLR执行应用程序。
那么“dnx”在这种情况下是做什么的?
我在我的系统上找不到“corerun”命令。 DNX SDK不提供corerun吗?
答案 0 :(得分:3)
Mono相当于.NET Framework。 .NET Core完全不同,
http://blogs.msdn.com/b/dotnet/archive/2014/12/04/introducing-net-core.aspx
您的应用程序必须针对.NET Core 5配置文件进行编译和设计,以便能够在.NET Core 5上运行。这不是一个自动的事情。目前,您只能使用Visual Studio 2015进行此类开发(或使用命令行工具在代码编辑器中)。
corerun
在此示例中略有描述,
https://github.com/dotnet/coreclr/blob/master/Documentation/building/osx-instructions.md