起步只有3个文件:CoreRun.exe, coreclr.dll, mscorlib.dll, HelloWorld.exe

运行命令:CoreRun HelloWorld.exe

出错:

Assert failure(PID 9672 [0x000025c8], Thread: 16280 [0x3f98]): 0

!  + 0x0 (0x00000000`00000000)
File: e:\dev\github\dotnet\coreclr\src\utilcode\ccomprc.cpp, Line: 814 Image
:
E:\Dev\GitHub\DotNet\CoreClrHelloWorld\runtime_windows\CoreRun.exe
**** MessageBox invoked, title 'CoreRun.exe - Assert Failure (PID 9672, Thread 1
6280/3f98) ' ****
0 ! + 0x0 (0x00000000`00000000) e:\dev\github\dotnet\coreclr\src\utilcode\ccomprc.cpp, Line: 814

启动Visual Studio进行调试,发现是因为少了mscorrc.debug.dll这个文件。

this	0x000007fdccd146b0 {coreclr.dll!CCompRC CCompRC::m_DefaultResourceDll} {m_Primary={m_LangId=0x000007fdccd146b0 L"en-US" ...} ...}	CCompRC *
m_Primary {m_LangId=0x000007fdccd146b0 L"en-US" m_hInst=0x0000000000000000 m_fMissing=1 } CCulturedHInstance
m_pHash 0x0000000000000000 CCulturedHInstance *
m_nHashSize 0 int
m_csMap 0x000000a31a9cb933 void *
m_pResourceFile 0x000007fdcc9cd200 L"mscorrc.debug.dll" const wchar_t *
m_fpGetThreadUICultureId 0x000007fdcbde5ac8 {coreclr.dll!GetThreadUICultureId(wchar_t[85] *)} int (wchar_t[85] *) *
m_fpGetThreadUICultureNames 0x000007fdcbde5d68 {coreclr.dll!GetThreadUICultureNames(StringArrayList *)} HRESULT (StringArrayList *) *

将mscorrc.debug.dll复制过来,继续运行,出现下面的错误:

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or ass
embly 'System.Console, Version=999.999.999.0, Culture=neutral, PublicKeyToken=b0
3f5f7f11d50a3a' or one of its dependencies. The system cannot find the file spec
ified.
at Program.Main(String[] args)

需要System.Console程序集,将之从corefx编译出来的程序集中复制过来。

继续运行,又出错,这次是需要System.Runtime.dll,从corefx的packages文件夹(nuget packages)中复制过来(注:lib\net45子文件夹)

接下来又需要System.IO.dll,也是从corefx的packages文件夹中复制。

再接下来还需要从corefx的packages文件夹中复制3个程序集:System.Threading.dll, System.IO.FileSystem.Primitives.dll, System.Diagnostics.Debug.dll。

这时,当前文件夹一共有11个文件:

coreclr.dll
CoreRun.exe
HelloWorld.exe
mscorlib.dll
mscorrc.debug.dll
System.Console.dll
System.Diagnostics.Debug.dll
System.IO.dll
System.IO.FileSystem.Primitives.dll
System.Runtime.dll
System.Threading.dll

继续运行,出现新的错误:

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or ass
embly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
' or one of its dependencies. The system cannot find the file specified.
at System.ConsolePal.WindowsConsoleStream..ctor(IntPtr handle, FileAccess acc
ess)
at System.ConsolePal.GetStandardFile(IntPtr handle, FileAccess access)
at System.ConsolePal.OpenStandardOutput()
at System.Console.OpenStandardOutput()
at System.Console.<>c__DisplayClass3.<get_Out>b__4()
at System.Console.EnsureInitialized[T](T& field, Func`1 initializer)
at System.Console.get_Out()
at System.Console.WriteLine(String value)
at Program.DrawWindows()
at Program.Main(String[] args)

System程序集就是mscorlib.dll,明明有这个文件,却说找不到。

后来换成corefx中packages\Microsoft.DotNet.CoreCLR.1.0.3-prerelease\lib\aspnetcore50中的mscrolib.dll,就不错这个错误了。

但是运行CoreRun HelloWorld.exe却无任何输出,换成CoreRun -v HelloWorld.exe出现下面的错误:

HOSTLOG: Finding GetCLRRuntimeHost(...)
HOSTLOG: Calling GetCLRRuntimeHost(...)
HOSTLOG: Setting ICLRRuntimeHost2 startup flags
HOSTLOG: Starting ICLRRuntimeHost2
HOSTLOG: Failed to start CoreCLR. ERRORCODE: 0x80004005/E_FAIL
HOSTLOG: Execution failed

一步一步就到这里,暂时没找到解决方法。

Windows上一步一步CoreRun的更多相关文章

  1. 【新手出发】从搭虚拟机开始,一步一步在CentOS上跑起来.Net Core程序

    文章背景 微软6月26号发布core 1.0版本后,园子里关于这方面的文章就更加火爆了,不管是从文章数量还是大家互动的热情来看,绝对是最热门的技术NO.1.我从去年底开始接触.net core到现在也 ...

  2. 一步一步安装UEFI分区方式的windows 10 企业版

    发现很多坛友不会安装UEFI分区的windows 10 从启动设置,到分区,到最后的引导与激活都是很大的问题. 在我看来这是最不容易出错的安装方式适合于刚刚上手的菜鸟,自己按照图片一步一步的就可以安装 ...

  3. 一步一步教你将开源项目上传到jcenter

    最近闲着看了一下jcenter的使用,也想将自己使用频率比较高的东西抽成类库,然后通过compile来使用,提高开发效率,本来以为挺简单的,但是网上介绍的比较模糊,很多博客也比较老了,不适用,花了我一 ...

  4. 一步一步学Silverlight 2系列(19):如何在Silverlight中与HTML DOM交互(上)

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  5. 《⑨也懂系列:MinGW-w64安装教程》著名C/C++编译器GCC的Windows版本(MinGW-w64在安装的时候可以选择版本,有图,一步一步)

    发布日期 2016年10月31日 分类 教程 标签 编程.软件 前言<⑨也懂系列:MinGW-w64安装教程>这篇文章由 rsreland (http://rsreland.net)于 2 ...

  6. 在Linux上安装Oracle RAC 12 c(12.1) 虚拟机,一步一步向导

    Oracle RAC 12 c(12.1)在Linux上安装虚拟机,一步一步向导 今天我们将看到如何安装 12 c版本1 RAC(真正的应用程序集群)数据库2 Linux 64位的虚拟机 使用VMWa ...

  7. 一步一步写算法(之prim算法 上)

    原文:一步一步写算法(之prim算法 上) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 前面我们讨论了图的创建.添加.删除和保存等问题.今 ...

  8. 一步一步在Windows中使用MyCat负载均衡 下篇

    之前在 一步一步在Windows中使用MyCat负载均衡 上篇 中已经讲了如何配置出MyCat.下面讲其相关的使用. 五.配置MyCat-eye 对于MyCat监控官网还提供一个MyCat-eye w ...

  9. 一步一步在Windows中使用MyCat负载均衡

    一步一步在Windows中使用MyCat负载均衡 http://www.cnblogs.com/zhangs1986/p/6408981.html   mycat+sqlServer简单demo配置 ...

随机推荐

  1. CentOS 问题集锦

    在CentOS 6更新后,不可避免的会在启动选项中产生多个内核选项,一个内核文件大概占100兆左右(一般100M以下),可以使用以下命令进行删除多余的内核. 1.首先列出系统中正在使用的内核: # u ...

  2. 二维数组去除重复值和array_unique函数

    今天遇到了一个问题,就是从数据库中去除的数组为一个二维数组,现在就是想将二位数组进行去重,但是在php中,对于一个一维数组,我们可以直接使用php的系统函数array_unique,但是这个函数不能对 ...

  3. eclipse 删除所有注释及空白行

    Ctrl+F 删除java注释:  /\*{1,2}[\s\S]*?\*/ Ctrl+F 删除xml注释:  <!-[\s\S]*?--> Ctrl+F 删除空白行:   ^\s*\n 选 ...

  4. C# 集合与泛型

    一.古典集合方式 在C#2.0的时候集合主要通过两种方式实现: 1.使用ArrayList实现 新建ArrayList,然后将所有对象放入该数组中,简单直接,但缺点是该数组什么类型的元素都能接收,在实 ...

  5. Mycat配置文件rule.xml

    打开<MyCAT_HOME>/conf/rule.xml,对应的分片配置截取内容如下: <tableRule name="auto-sharding-rang-mod&qu ...

  6. shell讲解-小案例

    shell讲解-小案例 一.文件拷贝输出检查 下面测试文件拷贝是否正常,如果cp命令并没有拷贝文件myfile到myfile.bak,则打印错误信息.注意错误信息中basename $0打印脚本名.如 ...

  7. js基本常识了解

    http://www.cnblogs.com/Yue0327/p/5441773.html

  8. Sql 查找整个数据库中的字符串

    --存储过程 CREATE PROCEDURE [dbo].[SP_FindValueInDB] ( @value VARCHAR() ) AS BEGIN SET NOCOUNT ON; DECLA ...

  9. 2014 ACM/ICPC 北京邀请赛 部分 题解

    题目链接:http://acm.bnu.edu.cn/bnuoj/problem.php?search=2014+ACM-ICPC+Beijing+Invitational+Programming+C ...

  10. C#的 构造函数 和 方法重载

    构造函数(一本正经的讲构造函数 如果想看不正经的往下翻看方法重载) 方法名称与类名相同,没有返回值类型,连void都没有 用作给类的对象初始化 一个类中可以有多个构造 如果手动添加一个构造,系统不会自 ...