【问题标题】:Where to store files for Azure function?Azure 功能的文件存储在哪里?
【发布时间】:2018-11-19 01:17:51
【问题描述】:

我有通过 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
}

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

【问题讨论】:

    标签: c# .net azure azure-functions


    【解决方案1】:

    是的,将文件放在 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 &lt;FunctionProjectName&gt;.csproj。在下方添加Item,相对路径或绝对路径都可以。

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

    【讨论】:

    • 只要我将属性设置为copy to output directory,我将该文件放入哪个项目是否重要?只要它存在于解决方案中,我可以将它放在任何文件夹中的任何项目中吗?
    • @l--''''''---------'''''''''''' 我们可以把它放在我们想要的任何地方,只要确保我们在项目构建时将其复制到函数输出目录。查看我的更新。
    猜你喜欢
    • 2016-09-15
    • 2017-12-27
    • 1970-01-01
    • 2013-11-02
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    相关资源
    最近更新 更多