Visual Studio 2019 C#项目找不到路径下Resources文件夹如何解决
解决方案
方法1:单文件/目录设置复制属性(最常用)
- 如果
resources文件夹没有显示在解决方案资源管理器中,先点击面板顶部的「显示所有文件」按钮,找到根目录下的resources文件夹,右键选择「包括在项目中」 - 选中
resources文件夹下所有需要随项目输出的文件(或直接选中整个resources文件夹),右键点击选择「属性」 - 在属性面板中找到「复制到输出目录」选项,选择「如果较新则复制」
- 重新编译项目后,完整的
resources目录结构会自动同步到bin/Debug/net5.0输出目录下,你原本的资源加载代码不需要修改即可正常运行,更推荐将路径拼接逻辑替换为Path.Combine避免分隔符异常:
string FONT = Path.Combine(AppContext.BaseDirectory, @"resources\font\FreeSans.ttf");
方法2:批量配置项目文件自动复制
如果资源文件数量多,逐个设置属性麻烦,可以直接编辑项目配置批量生效:
- 右键点击项目名称,选择「编辑项目文件」
- 在
<Project>根节点内添加如下配置:
<ItemGroup> <None Update="resources\**\*"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> </ItemGroup>
- 保存项目文件后重新编译,
resources目录下所有文件都会自动复制到输出目录,且保留原有层级结构。
方法3:直接读取项目根目录资源(仅本地调试可用)
如果不需要把资源复制到输出目录,仅本地调试阶段使用,可以修改路径逻辑回退到项目根目录读取:
// 从输出目录bin/Debug/net5.0/回退3级到项目根目录 string projectRoot = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, @"..\..\..\")); string FONT = Path.Combine(projectRoot, @"resources\font\FreeSans.ttf");
注意:该方法仅适用于本地开发调试,不要在发布版本中使用,发布后不存在项目根目录结构,会直接触发路径找不到异常。
内容的提问来源于stack exchange,提问作者user3732793
相关产品推荐
相关产品推荐

