无法从独立程序集访问文件?跨项目接口引用问题求助
解决跨项目文件访问问题的几个实用思路
听起来你碰到了拆分项目后常见的文件访问坑——主项目内部能正常读取的文件,放到API项目里引用就出问题,对吧?我给你分享几个实际项目里常用的解决办法:
确保文件被同步到API项目的输出目录
主项目里的目标文件默认只会复制到主项目的输出文件夹,但API项目运行时是在自己的输出目录下找文件。你可以右键点击主项目里的那个文件,打开「属性」面板,把「复制到输出目录」设置为「始终复制」或者「如果较新则复制」。这样每次编译时,文件都会同步到API项目的输出目录里,就能正常访问了。用动态路径替代硬编码绝对路径
别用固定的绝对路径!主项目和API项目的部署路径、输出目录大概率不一样,硬编码绝对路径肯定会翻车。推荐用程序运行的基目录来拼接相对路径,比如在C#里可以这么写:string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources/your-target-file.txt");要是文件路径经常变动,还可以把路径配置到
appsettings.json里,两个项目各自维护自己的配置项,灵活性更高。把共享文件抽成独立类库
如果这个文件是主项目和API项目都需要用到的,不如单独新建一个类库项目,把文件和相关的访问逻辑、接口都放到这个类库里,然后让主项目和API项目都引用这个类库。这样文件只需要维护一份,复制属性也只需要设置一次,彻底避免跨项目的文件同步问题。检查项目引用的完整性
有时候你可能只让API项目引用了主项目的接口层,但没引用实际包含那个文件的项目(或者类库)。这种情况下,API项目的输出目录里根本不会有目标文件,自然访问失败。记得确认API项目的依赖项里包含了所有需要的项目/类库。
内容的提问来源于stack exchange,提问作者user5405648
相关产品推荐
相关产品推荐

