我有一个 azure 函数(v3):
[FunctionName("Function1")]
public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ExecutionContext context)
{
if (File.Exists(Path.Combine(context.FunctionAppDirectory, "bin", "MyFolder", "TextFile1.txt")))
return new OkObjectResult("File does exists!");
else
return new OkObjectResult("File does NOT exists!");
}
我的 .csproj 里面有:
<None Update="MyFolder\TextFile1.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
还有这个:
<Target Name="CopyFiles" AfterTargets="AfterBuild">
<ItemGroup>
<MySourceFiles Include="$(OutDir)\MyFolder\TextFile1.txt" />
</ItemGroup>
<Copy SourceFiles="@(MySourceFiles)" DestinationFolder="$(OutDir)\bin\MyFolder\" SkipUnchangedFiles="true" />
</Target>
我要..MyFolder/TextFile1.txt
复制到..bin/MyFolder/TextFile1.txt
在本地运行它工作正常 File does exists!
但将其发布到 Azure 我得到 File does NOT exists!
查看 .scm.azurewebsites.net/DebugConsole
我可以看到文件夹并不像我希望的那样
C:\home\site\wwwroot\MyFolder>
C:\home\site\wwwroot\bin>
我确实尝试添加 <_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
但这没有帮助。
我怎样才能让这个例子工作?
(编辑) 为什么我尝试这样做: 我有一个第三方 DLL,它期望文件夹结构与 DLL 位于同一文件夹中。这通常在 .NET 项目中向前延伸。 使用 Azure 函数,此文件夹结构现在不会放置在与 DLL 相同的文件夹中。
最佳答案
您必须将文件设置为始终复制
:
<None Update="MyFolder\TextFile1.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
在 VS 中,单击文件 > 属性
> 更改复制到输出目录
> 始终复制
。
编辑:
在这种情况下,您必须使用管道复制文件
任务将文件从wwwroot
文件夹复制到wwwroot/bin
。
关于c# - Azure Function 在 bin 文件夹中创建文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66317440/