我有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
}
也许我可以简单地将此资源嵌入到项目中?
答案 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>