在哪里存储文件以实现天蓝色功能?

l--*_*''' 5 .net c# azure azure-functions

我有C#代码从内部引用的文件,例如:

    public static string Canonical()
    {
        return File.ReadAllText(@"C:\\myapp\\" + "CanonicalMessage.xml");
    }
Run Code Online (Sandbox Code Playgroud)

如何从Azure函数中引用此文件?

    public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
    {
        var data = File.ReadAllText(@"c:\\myapp\\" + "CanonicalMessage.xml");

        //etc
    }
Run Code Online (Sandbox Code Playgroud)

也许我可以简单地将此资源嵌入到项目中?

Jer*_*Liu 5

是的,将文件放在Azure Function项目的根目录下,并将其属性设置Copy to Output DirectoryCopy if newer。使用下面的代码。

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log, ExecutionContext context)
{
    var data = File.ReadAllText(context.FunctionAppDirectory+"/CanonicalMessage.xml");

    //etc
}
Run Code Online (Sandbox Code Playgroud)

查看文档以获取更多详细信息。

如果需要从本地任何位置添加此文件,请右键单击Function项目,Edit <FunctionProjectName>.csproj。在下面添加项目,相对或绝对路径都可以。

<ItemGroup>
  <None Include="c:\\myapp\\CanonicalMessage.xml">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
</ItemGroup> 
Run Code Online (Sandbox Code Playgroud)