首页 > 解决方案 > 如何将文件夹发布到 Azure 应用服务?

问题描述

我有一个 .Net Core 项目。作为我的数据库上下文类的一部分,我有一些种子数据要插入到数据库中。此种子数据从根目录中的 seed.json 文件反序列化,并在其中保存图像的路径。这些图像位于项目的一个文件夹中。在插入数据之前,我获取这些图像,将它们上传到 Azure 云存储,并更改指向那里的路径。这在当地很有效。

所以现在我将我的应用程序发布到 Azure App Service 并出现 FileNotFound 异常。它再也找不到项目中的图像。查看 Azure 的 Kudu 仪表板上的文件系统,我没有看到我的项目文件夹,而是一堆 .dll 和 .pdb 文件。我只能推测 Azure 可能将文件夹捆绑到 .dll 中?

我仍然可以很好地访问 wwwroot/images,但为了安全起见,我不想这样做。

我可以做些什么来将我的文件夹发布到他们的文件系统或访问我在他们的文件系统上的文件?

标签: asp.netazureazure-web-app-service

解决方案


您可能需要在 Program.cs 中设置项目工作目录。然后,您可以访问与 .dll 目录相关的文件。

var currentDir = Directory.GetCurrentDirectory();
config.SetBasePath(currentDir)

并且可能需要将 seed.json 和 images 文件夹复制到项目的输出中:

`<Content Include="seed.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="images/**/*">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

`

希望它可以帮助戴夫


推荐阅读