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

时间:2018-11-19 01:17:52

标签: c# .net azure azure-functions

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

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

如何在Azure功能中引用此文件?

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

        //etc
    }

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

1 个答案:

答案 0 :(得分:4)

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

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

    //etc
}

检查doc以获得更多详细信息。

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

<ItemGroup>
  <None Include="c:\\myapp\\CanonicalMessage.xml">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
</ItemGroup>