如何获取.net core项目中项目文件夹中存在的文件的相对路径

nan*_*336 2 .net c# .net-core

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

我试过

var path = @"Helper\automationJson.json"
Run Code Online (Sandbox Code Playgroud)

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

也尝试过

string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, subfolder name, filename); 
Run Code Online (Sandbox Code Playgroud)

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

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

有人可以帮忙吗?

小智 5

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

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

例如:

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

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

</Project>
Run Code Online (Sandbox Code Playgroud)

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

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