2016-04-12 6 views
1

Die Azure Functions samples veranschaulichen, wie der Prozess Einstiegspunkt innerhalb einer C# Skriptdatei .csx. Wie kann ich jedoch das Verhalten mit einer regulären C# -Bibliothek (DLL) erreichen? Kann ich Kudu dazu bringen, die Bibliothek zuerst so zu kompilieren, wie es für Webapp gemacht wird?Wie wird der Einstiegspunkt einer Azure-Funktion in eine .NET-DLL eingefügt?

+2

Mögliche Duplikat [Ausführen vorkompilierte .NET-Code als Azure Function] (http://stackoverflow.com/questions/36436917/execute-pre -compiled-net-code-as-azure-Funktion) – Mikhail

Antwort

2

Als diese Frage geschrieben wurde, wurde sie nicht unterstützt, aber jetzt ist sie es!

https://github.com/Azure/azure-webjobs-sdk-script/wiki/Precompiled-functions

Auszug aus dem Wiki:

{ 
"scriptFile": "PreCompiledFunctionSample.dll", 
"entryPoint": "PreCompiledFunctionSample.MyFunction.Run", 
"bindings": [ 
    { 
     "authLevel": "function", 
     "name": "req", 
     "type": "httpTrigger", 
     "direction": "in" 
    }, 
    { 
     "name": "$return", 
     "type": "http", 
     "direction": "out" 
    } 
], 
"disabled": false 
} 
+0

Setzen Sie PrecompiledFunctionSample.Dll unter d:/site/wwwroot/MyFunction/bin? Ich kann es nicht funktionieren, außer auf dem lokalen Emulator. Die in der Dll eingebettete und als entryPoint-ID deklarierte Funktion wird von Kudu accordinng nicht gefunden, selbst wenn sie öffentlich, statisch, in einer öffentlichen Klasse ist. –

+0

Um ehrlich zu sein, habe ich es selbst noch nicht gemacht (ich behalte Bedeutung um herumzukommen zu ihm). Ich würde beides versuchen. Ich würde auch sicherstellen, dass Sie die neueste Version von Azure-Funktionen ausführen, die Version, die Sie verwenden, wird nicht automatisch aktualisiert, Sie müssen das selbst tun (Sie können es über das Azure-Portal tun). –

4

Joannes,

Dies wird derzeit nicht unterstützt, aber Sie können Ihre Montage mit Ihrer Funktion veröffentlichen, wie here beschrieben und müssen nur Ihre Funktion Einstiegspunkt die entsprechende Methode in Ihrer Assembly aufrufen:

#r "MyAssembly.dll" 

public static void Run(/*...args...*/) 
{ 
    MyAssembly.MyMethod(/*..args...*/); 
} 
Verwandte Themen