在Stephan Cleary最近关于.NET CoreCLR上的异步控制台应用程序的博客文章中,他向我们展示了在CoreCLR中(目前在Visual Studio 2015上运行,CTP6),入口点"Main"实际上可以标记为async Task,正确编译并实际运行:
public class Program
{
public async Task Main(string[] args)
{
Console.WriteLine("Hello World");
await Task.Delay(TimeSpan.FromSeconds(1));
Console.WriteLine("Still here!");
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
给出以下输出:

这是由ASP.NET团队的一篇名为"深度潜入"的博客文章强化到ASP.NET 5运行时:
除了静态
Program.Main入口点之外,KRE还支持基于实例的入口点.您甚至可以使主入口点异步并返回任务.通过使主入口点成为实例方法,您可以将运行时环境中的服务注入到应用程序中.
我们知道,到目前为止,无法使用'async'修饰符标记入口点.那么,在新的CoreCLR运行时中,这实际上是如何实现的呢?
是否有可用于执行Web请求/基本GET下载的提供程序coreclr?(.net core)
两者System.Net.Webclient并HttpWebRequest/HttpWebResponse没有用,我意识到它的目的是在服务内容,而不是消费,而是基本的字符串下载看起来像是真的应该被列入?
我忘记了什么,或者只是直接不可能?
我可以默认使用完整的dnx,但实际上不会丢失并失去跨平台兼容性.
我有一个在Raspberry Pi 2,Windows 10 IoT上运行的.NET Universal App的转储:
0:000> vertarget
Windows 10 Version 10240 MP (4 procs) Free ARM (NT) Thumb-2
Product: WinNt, suite: SingleUserTS
Built by: 10.0.10240.16384 (th1.150709-1700)
Run Code Online (Sandbox Code Playgroud)
我看到它coreclr像之前使用的Silverlight一样.
0:000> lm vm coreclr
start end module name
6e430000 6e7fd000 coreclr (export symbols) coreclr.dll
Loaded symbol image file: coreclr.dll
...
Timestamp: Thu Jul 16 21:37:39 2015 (55A88693)
...
File version: 4.6.23117.0
Product version: 4.0.23117.0
Run Code Online (Sandbox Code Playgroud)
执行a !analyze -v不会自动下载SOS.
加载我在PC上找到的SOS Silverlight版本表示版本错误:
0:000> .load C:\Program Files\Microsoft Silverlight\5.1.20513.0\sos.dll
0:000> !threads
The version …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用CoreCLR动态调用特定类型的成员,但是在针对DNXCORE50进行编译时,方法Type.InvokeMember不可用.但是,如果我针对DNX451编译它可以正常工作.
下面是使用DNX451如何实现这一目标的示例,但我如何在DNXCORE50中执行相同操作?
using System;
using System.Reflection;
namespace InvokeMember
{
public class Program
{
public void Main(string[] args)
{
typeof (Program).InvokeMember("DoStuff", BindingFlags.InvokeMethod, null, new Program(), null);
}
public void DoStuff()
{
Console.WriteLine("Doing stuff");
}
}
}
Run Code Online (Sandbox Code Playgroud) 既然没有 a app.config,您如何将 gcAllowVeryLargeObjects 设置为 true 以便您可以分配大数组?
我按照https://www.microsoft.com/net/core#ubuntu 和其他地方提到的步骤使用 i386 而不是 amd64。但遇到以下错误。请帮忙。
配备i386
sudo apt-get 更新
[...] Get:4 https://apt-mo.trafficmanager.net/repos/dotnet xenial InRelease [2,819 B] 在 2 秒内获取 97.3 kB (42.6 kB/s) 读取包列表...完成 N:跳过获取配置文件“main/binary-i386/Packages”作为存储库“ https://apt-mo.trafficmanager.net/repos/dotnet xenial InRelease”不支持架构“i386”
在这两种情况下 i386 或 amd64 sudo apt-get install dotnet-dev-1.0.0-preview2-003121
读取包列表...完成 构建依赖关系树
读取状态信息...完成 E: 无法找到包 dotnet-dev-1.0.0-preview2-003121 E: 无法通过 glob 'dotnet-dev-1.0 找到任何包.0-preview2-003121' E:无法通过正则表达式'dotnet-dev-1.0.0-preview2-003121'找到任何包
我使用Jenkins为CI设置构建服务器.我试图从https://www.microsoft.com/net/download安装.NET Core SDK
然而我尝试执行下载DotNetCore.1.0.1-SDK.1.0.0.Preview2-003131-x64.exe我得到未指定的错误

这是完整的日志
[07E8:0FE4][2016-09-19T12:09:36]i001: Burn v3.10.2.2516, Windows v6.3 (Build 9600: Service Pack 0), path: C:\Users\CODESC~1\AppData\Local\Temp\3\{0D7DA4AD-993A-4038-A544-14369A3FAF40}\.cr\DotNetCore.1.0.1-SDK.1.0.0.Preview2-003131-x64.exe
[07E8:0FE4][2016-09-19T12:09:36]i000: Initializing string variable 'DOTNETHOME' to value '[ProgramFiles6432Folder]dotnet'
[07E8:0FE4][2016-09-19T12:09:36]i000: Initializing string variable 'BUNDLEMONIKER' to value 'Microsoft .NET Core 1.0.1 - SDK 1.0.0 Preview 2-003131'
[07E8:0FE4][2016-09-19T12:09:36]i009: Command Line: '-burn.clean.room=C:\Users\codescriptor\Downloads\DotNetCore.1.0.1-SDK.1.0.0.Preview2-003131-x64.exe'
[07E8:0FE4][2016-09-19T12:09:36]i000: Setting string variable 'WixBundleOriginalSource' to value 'C:\Users\myuser\Downloads\DotNetCore.1.0.1-SDK.1.0.0.Preview2-003131-x64.exe'
[07E8:0FE4][2016-09-19T12:09:36]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'C:\Users\myuser\Downloads\'
[07E8:0FE4][2016-09-19T12:09:36]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\CODESC~1\AppData\Local\Temp\Microsoft_.NET_Core_1.0.1_-_SDK_1.0.0_Preview_2-003131_(x64)_20160919120936.log'
[07E8:0FE4][2016-09-19T12:09:36]i000: Setting string variable 'WixBundleName' to value …Run Code Online (Sandbox Code Playgroud) asp.net-core-mvc .net-core coreclr asp.net-core asp.net-core-1.0
我在不同的操作系统上测试.net内核,我想知道是否可以通过我的Raspberry PI3在Windows 10上安装dotnet/cli(.net Core).我的目标是进行简单的GPIO测试.
到目前为止我做了什么:
我错过了什么吗?这样做还为时过早?
PS:我在GitHub 中推出dotnet/cli问题.
2017-04-19:这个过程正在进行中,看看Raspberry Pi上的.NET Core
TL; DR
我正在关注Ubuntu 14.04的http://dotnet.github.io/getting-started/上的文档.
当我运行dotnet run它输出Could not resolve coreclr path它立即退出非零返回代码,我在文档中找不到我应该做什么.
更多细节
实际上,在此之前出现了意想不到的事情:即使我添加deb [arch=amd64] http://apt-mo.trafficmanager.net/repos/dotnet/ trusty main到我的来源,也没有dotnet包.但是有一个dotnet-dev包,所以这是我实际安装的这个包.
当我跑dotnet new,dotnet restore或者dotnet compile,一切似乎都好.
当我跑步时,locate coreclr我找到了几个匹配的文件.特别是有一个/usr/share/dotnet-dev/runtime/coreclr目录中有几个.dlls和.sos.还有一个$HOME/.dnx/packages/runtime.ubuntu.14.04-x64.Microsoft.NETCore.Runtime.CoreCLR/1.0.1-rc2-23616/runtimes/ubuntu.14.04-x64/native/libcoreclr.so文件
coreclr ×10
c# ×5
.net ×3
asp.net-core ×3
.net-core ×2
dnx ×2
asp.net ×1
async-await ×1
cil ×1
dnvm ×1
i386 ×1
reflection ×1
sos ×1
ubuntu ×1
ubuntu-16.04 ×1
windbg ×1