Asp.net 如何将文件夹发布到Azure应用程序服务?

Asp.net 如何将文件夹发布到Azure应用程序服务?,asp.net,azure,azure-web-app-service,Asp.net,Azure,Azure Web App Service,我有一个.Net核心项目。作为数据库上下文类的一部分,我有一些种子数据要插入数据库。此种子数据从根目录中的seed.json文件反序列化,并保存指向其中图像的路径。这些图像位于项目的文件夹中。在插入数据之前,我获取这些图像,将它们上载到Azure云存储,并更改路径以指向那里。这在本地非常有效 因此,现在我将我的应用程序发布到Azure应用程序服务,并出现FileNotFound异常。 它无法再在项目中找到图像。查看Azure的Kudu仪表板上的文件系统,我没有看到我的项目文件夹,而是一堆.dll

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

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

我仍然可以访问wwwroot/images,但出于安全考虑,我宁愿不访问


如何将文件夹发布到他们的文件系统或访问他们文件系统上的文件?

您可能需要在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>
`

希望能有帮助
戴夫

嘿,戴夫,谢谢你。我缺少的是“复制到输出目录”设置。