azure-functions-core-tools icon indicating copy to clipboard operation
azure-functions-core-tools copied to clipboard

[v1] C++ 2013 Runtime Dependency not bundled/documented

Open fowl2 opened this issue 3 years ago • 3 comments

Without the Visual C++ 2013 runtime installed, attempting to run a Azure Functions v1 project will result in an error similar to this:

cd module.js:583
  return process.dlopen(module, path._makeLong(filename));
                 ^
Error: The specified module could not be found.
\\?\C:\Users\user\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\edge\x86\edge_nativeclr.node

edge_nativeclr.node is part of https://github.com/tjanczuk/edge, some sort of bridge between .NET and Node.js (not to be confused with Edge the browser, or https://github.com/edge-js the templating engine!). This error occurs regardless of the presence of functions written in Javascript.

Later versions of edge.js, apparently use the C++ 2015 runtime, which seems to be evergreen-ish and is definitely is bundled with Visual Studio. This might bump the Node version which is probably undesired at this point, although running a 5 year old version of Node is probably undesired too.

I guess a fix here would be to ensure the C++ 2013 runtime is included in setup. Alternatively detect when it is not and disable JS function support, or improve the understandability of the error message.

see: https://github.com/Azure/azure-functions-core-tools/issues/163

fowl2 avatar Apr 05 '22 08:04 fowl2

@fowl2 Thanks for surfacing this. Based on this document, Azure Functions V1 is in maintenance mode. Would it be possible to move to Azure Functions V4 for your use case?

michaelpeng36 avatar Apr 07 '22 21:04 michaelpeng36

We're working on it! But this was a real issue that a colleague experienced, that's only going to get more common as other products update. Given that v1 is still being supported indefinitely, I think packaging fixes count as "maintenance" :)

fowl2 avatar Apr 11 '22 14:04 fowl2