首页 > 解决方案 > 如何获取.net核心项目中项目文件夹中存在的文件的相对路径

问题描述

我想获取项目文件中的文件路径。

我试过

var path = @"Helper\automationJson.json"

但这从bin/debugas获取文件C:\AutomationActivityTrace\bin\Debug\netcoreapp2.2\Helper\automationJson.json

也试过

string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, subfolder name, filename); 

还有更多,但我没有得到我想要的。

我需要路径C:\AutomationActivityTrace\Helper\automationJson.json

谁能帮忙?!

标签: c#.net.net-core

解决方案


假设:您的应用程序需要读取此特定文件,并且该文件在构建时存在。

bin作为构建的一部分,您需要将其复制到该文件夹​​中。这是在您的csproj文件中使用CopyToOputputDirectory.

例如:

<Project Sdk="Microsoft.NET.Sdk">
   <!-- other stuff -->

  <ItemGroup>
    <None Include="Helper\*.json">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
  </ItemGroup>

</Project>

现在,当您构建项目时,例如使用dotnet build,您应该在C:\AutomationActivityTrace\bin\Debug\netcoreapp2.2\Helper\automationJson.json

然后涉及的解决方案AppContext.BaseDirectory应该找到该文件,例如Path.Combine(AppContext.BaseDirectory, "Helper", "automationJson.json")


推荐阅读