在 Azure 上托管时找不到位于我的根项目文件夹中的文件

Posted

技术标签:

【中文标题】在 Azure 上托管时找不到位于我的根项目文件夹中的文件【英文标题】:Unable to find files located in my root project folder when hosted on Azure 【发布时间】:2020-06-09 09:21:13 【问题描述】:

我试图在我的 Blazor Client WebAssembly 项目的根项目中查找文件。虽然它在我的计算机上本地执行时有效,但在 Azure 上托管时无效。

在本地执行时,我得到了 1

在 Azure 上执行时,我得到 0(没有访问被拒绝的错误)

为了更完整,我将需要一些文件来填充初始空白数据库。

如果我无法访问项目文件夹中的文件,那么我会选择 Blob Azure 存储。我想澄清一下,这只是我自己的一个测试项目。

【问题讨论】:

您正在应用程序的当前工作目录中查找文件,假设该目录与您的应用程序所在的目录相同。这可能是真的(VS 默认设置了这个),但它可能不是。您可以使用 Path.GetDirectoryName(typeof(QuizController).Assembly.Location) 之类的方式获取包含您的应用程序的目录 我认为您可以使用 VS 中的 Cloud Explorer 浏览云中的文件。在最坏的情况下,您应该能够从 Cloud Explorer(或 Azure 门户)打开 Kudu 并检查那里的文件/文件夹层次结构。当然,最终您应该使用上面建议的@canton7 之类的通用方法,但这是更好地了解您所拥有的东西的好方法。这个link 可能会有所帮助。 感谢您的建议,我能够找到我的问题:我的某些文件未标记为“复制到输出目录”。非常感谢。 如果我的解决方案对这个问题有用,希望你能采纳,帮助更多的用户。Tks! 【参考方案1】:

此问题的原因是TextFile.txt 文件在发布时未包含在内。

Akos 说的没错。我正在修改.csproj 文件以发送我的答案。可以更好地帮助论坛的其他用户。

您可以将代码粘贴到您的 .csproj 文件中。

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <ResolvedFileToPublish Include="TextFile.txt">
      <RelativePath>TextFile.txt</RelativePath>
    </ResolvedFileToPublish>
  </ItemGroup>
</Project>

然后您就可以部署您的应用了。你可以在D:\home\site\wwwroot&gt;下找到TextFile.txt

【讨论】:

以上是关于在 Azure 上托管时找不到位于我的根项目文件夹中的文件的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 discord.py 机器人在 Heroku 上托管时没有声音?

在 000webhost 上托管时无法使用 jwt 连接到 laravel api

在 Azure Devops 上运行构建时找不到资产文件 project.assets.json

在 Heroku 上托管时,Selenium 应用程序重定向到 Cloudflare 页面

在 VS 2017 中设置新项目时找不到 Azure Functions

在 Heroku 上托管时,Puppeteer discord bot 不断崩溃