我想在我的Azure函数上使用一些共享类,以避免重复代码。
我尝试创建一个空的C#函数,并在该函数中创建类,然后使用以下命令导入到其他函数:
#r "../Shared/Class.cs"
发布于 2016-09-17 06:58:19
首先,将你的共享代码放在Function App根目录下的一个文件夹中(例如“共享”)。假设我在该文件夹中放置了一个共享的Message.csx
类(例如,完整路径D:\home\site\wwwroot\Shared\Message.csx
)。
要将其包含到函数中,请使用#load
命令:
#load "..\Shared\Message.csx"
using System;
using Microsoft.Azure.WebJobs.Host;
public static void Run(Message message, TraceWriter log)
{
log.Info($"C# Queue trigger function processed message: {message.Id}");
}
有关详细信息,请参阅帮助页面here。默认情况下,不会跟踪该目录中的文件是否有更改。如果您希望确保当该目录中的文件发生更改时,您的函数将获得更改并重新编译,您可以将您的“共享”目录添加到host.json
的watchDirectories
列表中。例如:
{
"watchDirectories": [ "Shared" ]
}
发布于 2017-05-17 01:48:40
由于Azure函数的更改率,这不再是C#函数的推荐方法(请参阅Azure Functions Tools Roadmap)。请参考下面的博客文章,了解在visual studio中构建C#项目的最现代和最有效的模式,并像在C#中一样获得共享DLL的所有优点。
https://azure.github.io/AppService/2017/03/16/Publishing-a-.NET-class-library-as-a-Function-App.html
https://github.com/devkimchi/Precompiled-Azure-Functions-Revisited
发布于 2017-09-05 22:25:52
当在Visual Studio中工作并寻找在函数应用程序中的函数之间共享一些C#脚本文件的方法时,如下所示:
#load "..\Shared\MySharedCode.csx"
请注意,您应将共享文件夹中文件的“复制到输出目录”属性设置为“始终复制”。
https://stackoverflow.com/questions/39540951
复制相似问题