Windows上一步一步CoreRun

起步只有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

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

时间: 2024-11-07 03:11:00

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

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

http://bbs.pcbeta.com/viewthread-1616698-1-1.html 发现很多坛友不会安装UEFI分区的windows 10 从启动设置,到分区,到最后的引导与激活都是很大的问题. 在我看来这是最不容易出错的安装方式适合于刚刚上手的菜鸟,自己按照图片一步一步的就可以安装上原版加密镜像.我有原版情节,所用最下面放上的是原版加密镜像,如果您用别的镜像就不用解密这一步. 我在这里先列一些必须工具. 1.windows 10的esd镜像,或者iso镜像,可以参考这里的. h

一步一步学ZedBoard &amp; Zynq(七):制作ZedBoard上linux根文件系统(ramdisk)

一步一步学ZedBoard & Zynq(七):制作ZedBoard上linux根文件系统(ramdisk) 网址:http://xilinx.eetrend.com/blog/3935 Digilent的OOB设计给出了一个ZedBoard上完整的运行的linux系统所需要的所有文件,包括配置FPGA的bit文件. 配置ARM PS系统的First-Stage boot loader(FSBL)和引导linux需要的Second-Stage boot loader(SSBL).Linux内核z

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

最近闲着看了一下jcenter的使用,也想将自己使用频率比较高的东西抽成类库,然后通过compile来使用,提高开发效率,本来以为挺简单的,但是网上介绍的比较模糊,很多博客也比较老了,不适用,花了我一天的时间,还是走了很多弯路,这里记录下来,希望能帮助到小伙伴们,现在觉得还是挺简单的.第一步:首先是注册,这就是我踩的最大的一个坑,导致我一天都没有上传成功.网上说的都是去jcenter的网站上注册就可以,其实不然,英文好的最好去看英文文档,一步一步来操作.个人正确的注册地址:https://bin

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

文章背景 微软6月26号发布core 1.0版本后,园子里关于这方面的文章就更加火爆了,不管是从文章数量还是大家互动的热情来看,绝对是最热门的技术NO.1.我从去年底开始接触.net core到现在也大半年了,一直停留在浏览各种帖子上,偶尔新建个项目敲几行代码练习一下.可是对于core最大的卖点——跨平台,一直没法实际体验一回,因为压根没接触过Linux,完全不会那些命令,甚至虚拟机都没玩过?,想在Linux上实战操作一下可想有多困难.虽然园子里很多文章都有教程,但大神们一开始直接就上各种命令代

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

Oracle RAC 12 c(12.1)在Linux上安装虚拟机,一步一步向导 今天我们将看到如何安装 12 c版本1 RAC(真正的应用程序集群)数据库2 Linux 64位的虚拟机 使用VMWare或Oracle VirtualBox. 甲骨文的“c”12 c代表“ 云 ” 有一些重要和有趣的变化时安装12 c相比11 g RAC. 甲骨文似乎增加了很多新的有趣的特性在12摄氏度. 请注意,我们需要2虚拟机各有3 GB内存. 所以如果你有足够的记忆你的笔记本电脑/ PC机或服务器上,那么你

PHP在Windows下安装配置第一步

第一步就是下载和安装PHP解释器了: 1.下载Windows版本的PHP解释器,下载地址:官方下载 我下载的是 VC11 x64 Thread Safe 这个下面的zip包 2.下载完成后,解压到 C:\php 目录,然后打开目录,解压目录下有个ext子目录,保存了php的一些扩展dll 还有2个文件 ,一个 php.ini-development ,一个是 php.ini-production ,从名字也可以看出是开发环境跟生产环境的区别了 3.复制一份php.ini-development文

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

原文:一步一步写算法(之prim算法 上) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 前面我们讨论了图的创建.添加.删除和保存等问题.今天我们将继续讨论图的一些其他问题,比如说如何在图的环境下构建最小生成树.为什么要构建最小生成树呢?其实原理很简单.打个比方,现在某一个乡镇有n个村,那么这n个村肯定是联通的.现在我们打算在各个村之间搭建网线,实现村村通的工程.那么有什么办法可以实现村村互通,同时又使得最后的总距离最小呢?要达到这个目

一步一步写算法(之哈夫曼树 上)

原文:一步一步写算法(之哈夫曼树 上) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在数据传输的过程当中,我们总是希望用尽可能少的带宽传输更多的数据,哈夫曼就是其中的一种较少带宽传输的方法.哈夫曼的基本思想不复杂,那就是对于出现频率高的数据用短字节表示,对于频率比较低得数据用长字节表示. 比如说,现在有4个数据需要传输,分别为A.B.C.D,所以一般来说,如果此时没有考虑四个数据出现的概率,那么我们完全可以这么分配,平均长度为2, /

一步一步 在mac上安装ubuntu

做为程序员的你一定听说过Linux甚至非常喜欢Linux.最近买了一台mac air,我非常喜欢苹果的工艺,但作为屌丝程序员,我依旧喜欢基于Linux内核的Ubuntu 进行开发.下面我就讲述一步一步在mac上安装ubuntu系统. 1 首先是下载bantu镜像,mac版本 2 打开终端 3 将iso格式转换成img格式 hdiutil convert -format UDRW -o ~/path/to/target.img ~/path/to/ubuntu.iso 4运行 diskutil l