JamesRandall / FunctionMonkey

Write more elegant Azure Functions with less boilerplate, more consistency, and support for REST APIs. Docs can be found at https://functionmonkey.azurefromthetrenches.com
MIT License
294 stars 50 forks source link

GettingStartedSample can't find functions "No job functions found" #146

Open joaoantunes opened 4 years ago

joaoantunes commented 4 years ago

I'm trying to update my old stable FunctionMonkey version to the most recent beta, so it can use 3.1 e new azure functions.

I'm struggling with several issues, so I created a new project to try a simple sample but it doesn't work.

So I've downloaded the latest code from the branch and tried to run GettingStartedSample and I got the following issue:

image

Any idea what am I missing? It seems FunctionAppConfiguration is not being found and is not registering the functions.

AKomyshan commented 4 years ago

You may have forgotten to reference FunctionMonkey.Compiler ?

joaoantunes commented 4 years ago

Reference where? I've just downloaded the Sample code and run it. In a sample project, I've installed my self the FunctionMonkey.Compiler, but had the same result.

image This is the nuget installed on the Getting Started project

I've just found out that when trying to compile GettingStartedSample it gives the following error: image

AKomyshan commented 4 years ago

After a little investigation, I was able to reproduce this error.

First of all this error does not appear when i click Build/Rebuild all cuz this project doesn't include to build in Configuration Manager.

image

The second is that we can't debug GettingStartedSample project with the current version of FunctionMonkey.Compiler (GettingStartedSample refer FunctionMonkey.Compiler version 3.0.17, but in solution (on master ofc) we have 4.0.56-beta.4 version of FunctionMonkey.Compiler).

The first thing I saw when I tried to debug it was: System.TypeLoadException: Method 'Validate' in type 'FunctionMonkey.FluentValidation.Implementation.Validator' from assembly 'FunctionMonkey.FluentValidation, Version=2.2.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation. at FunctionMonkey.FluentValidation.IFunctionHostBuilderExtensions.AddFluentValidation(IFunctionHostBuilder functionHostBuilder) at GettingStartedSample.FunctionAppConfiguration.Build(IFunctionHostBuilder builder) in C:\GitExternal\FunctionMonkey\Samples\DocumentationSamples\GettingStartedSample\FunctionAppConfiguration.cs:line 18 at FunctionMonkey.Compiler.Core.Compiler.Compile() in C:\GitExternal\FunctionMonkey\Source\FunctionMonkey.Compiler.Core\Compiler.cs:line 90 at FunctionMonkey.Compiler.Program.Main(String[] args) in C:\GitExternal\FunctionMonkey\Source\FunctionMonkey.Compiler\Program.cs:line 56

and looks like its okay after this commit in Validator.cs

When I switched to the 3.0.17 tag for FunctionMonkey.Compiler project and tried to compile GettingStartedSample project from master i receive an error

image

@JamesRandall It looks like the easiest solution is to update GettingStartedSample project to the latest version. I have already tested it and its works fine and i can create a pull request if you have no objections.

andy952 commented 3 years ago

I am having the same issue, pulled the latest sample, just hit run, and get the message

No job functions found. Try making your job classes and methods public. If you're using binding extensions (e.g. Azure Storage, ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. builder.AddAzureStorage(), builder.AddServiceBus(), builder.AddTimers(), etc.).

Tried to update both core and compiler packages to latest 4.0.56-beta.4 but still having the same issue

StylesGumede commented 3 years ago

Hello, @andy952 , did you end up finding a solution to this issue?

andy952 commented 3 years ago

No solution found, ended up giving up and creating 1 function in the end