azure-functions-core-tools
azure-functions-core-tools copied to clipboard
[v1] C++ 2013 Runtime Dependency not bundled/documented
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 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?
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" :)