Azure函数在bin-folder中创建文件夹?



我有一个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="MyFolderTextFile1.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>

:

<Target Name="CopyFiles" AfterTargets="AfterBuild">
<ItemGroup>
<MySourceFiles Include="$(OutDir)MyFolderTextFile1.txt" />
</ItemGroup>
<Copy SourceFiles="@(MySourceFiles)" DestinationFolder="$(OutDir)binMyFolder" SkipUnchangedFiles="true" />
</Target>

我想把..MyFolder/TextFile1.txt复制到..bin/MyFolder/TextFile1.txt

在本地运行它可以正常工作File does exists!但是将它发布到Azure,我得到一个File does NOT exists!

.scm.azurewebsites.net/DebugConsole,我可以看到文件夹不太像我希望的那样

C:homesitewwwrootMyFolder>
C:homesitewwwrootbin>

我确实尝试添加<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>,但没有帮助。

我如何使这个例子工作?

(编辑)为什么我要这样做:我有一个第三方DLL,它期望一个文件夹结构位于与DLL所在的文件夹中。这在。net项目中通常是向前扩展的。使用Azure函数,此文件夹结构现在不会与DLL放在同一个文件夹中。

你必须把文件命名为Copy Always:

<None Update="MyFolderTextFile1.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>

在VS中,点击文件>Properties祝辞更改Copy to Output Directory>Copy Always.

编辑:

在这种情况下,您将不得不使用管道Copy file任务从wwwroot文件夹复制文件到wwwroot/bin

最新更新