Elements project file compatible with new dotnet proj format?

Thanks! I ran into the System.Xml issue when I made a naive first pass. I’ll try to run this in the morning.

the WindowsAzure.Storage package added a framework reference to System.Xml.dll, which relied on the “regular” resolve logic to find it later. but of curse for .NET Core there are no base system dlls to be referenced, so this failed to resolve.

The standard .NET Core package of course does add System.Xml itself, but due to ordering, that one was hit after the one from WindowsAzure.Storage was already there, got skipped (already have this dll, dont need it again), and as result we ended up with a reference w/o resolved path.

The fix was that the “skip” login now only applies if the existing reference is already fully resolved; if not it replaces it.

I’ll start a new full build with Water for you, and out init your Personal Download folder. usually takes 1-2h.

1 Like

Thank you!

1 Like

Sorry, didn’t get the build I was waiting for yet, due to some unrelated breakage on the branch. building now (and hopefully successful, this time :wink:

1 Like

Done/Up.

1 Like

Thank you! I tried running with func host start, even after making several adjustments and adding the missing function.json binding. I found I had to cd into the output directory and run func host start from there. When I did that, it worked!

Out of curiosity, does EBuild support copying a file to the output directory based on its directory in the project? I added HttpExample\function.json to the project and set it to PreserveNewest, but it always copies function.json to the output root.

Here’s the project I created. Currently, I have to mkdir bin/output/HttpExample and mv bin/output/function.json bin/output/HttpExample.

LocalFunctionProj.zip (18.9 KB)

I think so, but I have to check. if not, I’ll log to add an option.

Try adding <FinalOutputFolderOverride>.\HttpExample\</HttpExample> to the file, in the project.

1 Like

That worked great! Thanks! I even managed to convert this to something similar to Swift, which I’ll plan to blog about as soon as I’m able to verify I can publish it to Azure.

1 Like

Cool!

once it all works, would you mind sending me the final project (minus real code, of course) so I could turn this into a project template?

I’d be delighted to do that. Do you want both Hydrogene and Silver?

Just C# will be fine, when i convert that to template I have tools to auto-convert it (with manual fix-ups) to all the other languages.

I went ahead and created both. I had to make a small tweak to the Silver conversion to make it work, though that’s likely due to my newness to Swift. Thank you so much for your help!

LocalFunctionProj.zip (2.4 KB)
silverfunc.zip (2.5 KB)

This is very interesting. Do you know if its possible to debug locally as well ?

I didn’t try to connect the debugger. I could only run the function using the func host start from bin/output. I assume you could connect the debugger to the running app, but I couldn’t start the project in debug mode.

FTR, in vNext, please set

      <DestinationFolder>.\HttpExample\</DestinationFolder>

instead. FinalOutputFolderOverride works (on Windows) but its a value used internally by the build chain in other places, and as such contains platform-specifc paths while all paths in our project file sue Windows-style back-slash. As a result, having windows-type slashes in FinalOutputFolderOverride fails on Mac (or Linux). Tomorrow’s build will handle DestinationFolder as well-known external value and expect windows-style paths there on all platforms.

1 Like

Is it also possible to move the dlls into a bin folder ? Extensions seem to require a bin sub folder ie bin/debug/bin. I moved the files around myself and its working

This is what the debug folder looks like

Ugh. not easily, no.