zoukankan      html  css  js  c++  java
  • 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:devgithubdotnetcoreclrsrcutilcodeccomprc.cpp, Line: 814 Image
    :
    E:DevGitHubDotNetCoreClrHelloWorld
    untime_windowsCoreRun.exe
    **** MessageBox invoked, title 'CoreRun.exe - Assert Failure (PID 9672, Thread 1
    6280/3f98)        ' ****
      0
    
    !  + 0x0 (0x00000000`00000000)
    
    e:devgithubdotnetcoreclrsrcutilcodeccomprc.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 et45子文件夹)

    接下来又需要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中packagesMicrosoft.DotNet.CoreCLR.1.0.3-prereleaselibaspnetcore50中的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

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

  • 相关阅读:
    Nim or not Nim? hdu3032 SG值打表找规律
    Maximum 贪心
    The Super Powers
    LCM Cardinality 暴力
    Longge's problem poj2480 欧拉函数,gcd
    GCD hdu2588
    Perfect Pth Powers poj1730
    6656 Watching the Kangaroo
    yield 小用
    wpf DropDownButton 源码
  • 原文地址:https://www.cnblogs.com/dudu/p/4329456.html
Copyright © 2011-2022 走看看