none
ucrtbased.dll (ARM64) was not found RRS feed

  • Question

  • I built a simple C console program with VS 16.2.0 Preview 3. I attempted to test it on a Windows 10 ARM64 machine with Visual Studio 2019 Remote Debugger. It complains with a System Error:

        The code execution cannot proceed because ucrtbased.dll was not
        found. Reinstalling the program may fix the problem.

    I expected to find ucrtbased.dll in ...Common7\IDE\Remote Debugger\arm64, but it is not there. Where is it?

    Monday, July 15, 2019 8:08 PM

All replies

  •     The code execution cannot proceed because ucrtbased.dll was not
        found. Reinstalling the program may fix the problem.

    I expected to find ucrtbased.dll in ...Common7\IDE\Remote Debugger\arm64, but it is not there. Where is it?

    I'm not sure why you expected it to be there, but the debug versions aren't meant to be redistributable.

    If you build a release version of your project, does the target machine have ucrtbase.dll available?

    The debug DLLs are normally somewhere under the SDK folders like here:

    C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.UniversalCRT.Debug\10.0.18362.0\Redist\Debug\arm64

    Dave

    Monday, July 15, 2019 10:49 PM
  • It wouldn't be needed for the remote debugger, it doesn't depend upon the debug version of the UCRT at all. The debug version of a library is there for help in debugging your application, it has extra checks to help diagnose errors on your application. The debug version of the runtimes are not there for debuggers.

    There are only two supported ways to install the debug version of the UCRT onto a system. The first is install the Windows 10 SDK onto that system which I'm not sure is possible for an ARM64 machine, but the SDK has ARM64 versions of MT, RC and MIDL. The installer is x86 so it could work. The second is deploy it as part of the application you wish to debug.

    You can find the ARM64 version of ucrtbased.dll in the Windows 10 SDK in:

    <Windows Kits directory>\10\bin\<SDK version>\arm64\ucrt

    So on my system, I have this installed in Program Files (x86) and the Windows SDK is 10.0.18362.0 so the install path is:

    C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\arm64\ucrt

    If you place this in the same directory as your application when you deploy it then it should work. If you get reports of missing VC files, you can find them in the Visual Studio 2019's directory. An example where the preview 3 is installed in Program Files (x86) is:

    C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Redist\MSVC\14.22.27807\debug_nonredist\arm64\Microsoft.VC142.DebugCRT

    These should also be deployed along with your application and the ucrt.


    This is a signature. Any samples given are not meant to have error checking or show best practices. They are meant to just illustrate a point. I may also give inefficient code or introduce some problems to discourage copy/paste coding. This is because the major point of my posts is to aid in the learning process.

    Monday, July 15, 2019 10:54 PM
  • Hi Douglas,

    Welcome to the MSDN forum!

    ucrtbased.dll is installed on your system as part of the Windows 10 SDK. The file generally exists in the path: C:\Program Files (x86)\Windows Kits\10\bin\10.0.xxxxx.0\arm64\ucrt.

    Do you install multiple pre-release versions of Windows 10 SDK ? If so, this may be a problem with the pre-release version itself. l recommend that you debug the program each time you uninstall a minimum version of Windows 10 SDK that you installed. If you do not know which version to uninstall, please share some screenshots of all versions of Windows SDK you have installed and then we can give you some guidance. You can refer to this for more information.

    Any feedback will be expected.

    Best Regards,

    Perry


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com



    Tuesday, July 16, 2019 9:53 AM
  • Hi Douglas,

    Did you try my steps to troubleshoot the issue? If the issue not solved, please feel free to let us know.

    If the reply is helpful to solve your issue, please consider marking as an answer so that can help other community members search similar problems.

    Best Regards,

    Perry


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com



    Thursday, July 18, 2019 10:35 AM
  • I am having the same problem. Debug builds are failing reporting missing DLL dependencies: MSVCP140D.dll VCRUNTIME140D.dll and ucrtbased.dll

    Release builds however, are working fine. I have followed the instructions at https://blogs.windows.com/windowsdeveloper/2018/05/08/visual-studio-support-for-windows-10-on-arm-development/#GLVRKgx4moes6kq7.97

    This happens for both ARM and ARM64 configurations. Windows SDK 10.0.17763.0 on latest Visual Studio 2017

    Monday, July 29, 2019 7:25 PM
  • Same thing happens with a fresh install of Visual Studio 2019
    Monday, July 29, 2019 8:21 PM
  • My expectation is that VS x64 will build an executable that Remote Debugger arm64 can execute. I do not know if it is failing on the intel side or on the arm side, but it is failing.

    Is the problem that VS is not building the executable correctly by inserting unnecessary dependencies? Or is the problem that Remote Debugger does not have a complete set of resources for performing its function?

    Or is my expectation wrong, that debugging on a Windows arm64 machine is not supposed to work?


    Douglas Crockford

    Tuesday, August 20, 2019 3:59 AM