The documentation says that you can put a DLL in a bin
folder and reference it using a special #r
syntax, however in the Azure portal I cannot find how to upload these DLLs. Is this possible, and if so, how is that supposed to be accomplished?
问题:
回答1:
This is possible.
You can use Kudu to upload your binaries:
Open the app's Kudu portal. If your Functions App's URL is
samplefunctions.azurewebsites.net
, then go tosamplefunctions.scm.azurewebsites.net
.Click on the
Debug console
menu and selectPowerShell
. This will open up a PowerShell console plus a file explorer. Navigate toD:\home\site\wwwroot
.There you should see a folder which is named after your existing function. Navigate to that folder and drag-n-drop your binaries inside
bin
folder.Now you can use them with
#r
directive.
I think you should also be able to configure the continuous deployment of your libraries to Functions (e.g. from a Git repo). Go to Function app settings
-> Configure Continuous Integration
.
回答2:
Azure functions now has runtime support for precompiled functions. https://blogs.msdn.microsoft.com/appserviceteam/2017/03/16/publishing-a-net-class-library-as-a-function-app/
You’ll need to use a web project which will provide the full development experience of IntelliSense, local debugging, and publishing to Azure. The instructions above detail how.
回答3:
You're able to deploy your functions that has some external references just doing the deploy by Visual Studio Functions Tools.
Just configure your Azure account in your visual studio deployment settings, for your azure functions and play deploy. All references will be there in your Function App on azure.
回答4:
You can use Octopus Deploy (Website deployment step) to deploy a function.
The folder structure of the nuget package pushed to octopus deploy should be:
nuget_package.nupkg
|--bin
|--*.dll
|--run.csx
|--function.json
回答5:
You can add assembly reference with a relative path.
In portal.azure.com -> function apps, on the right hand side, View Files -> upload the dll (eg: YourDllName.dll).
In run.csx, enter #r "./YourDllName.dll"