Mac下.Net Core项目通过VPN访问网络配置文件失败求助
解决Mac上.NET Core访问SMB共享配置文件的问题
问题原因
Windows环境使用的\\network-directory\fileName是UNC格式路径,Mac系统的.NET Core运行时无法直接识别该格式。虽然Finder能通过smb://x.x.x.x/development连接共享,但项目运行时IO API不兼容这种跨平台路径格式,导致抛出System.IO.DirectoryNotFoundException异常。
可行解决方案
方案1:修改配置为本地挂载路径(推荐)
- 通过Finder成功连接
smb://x.x.x.x/development共享后,该共享会自动挂载到Mac的/Volumes/目录下,路径通常为/Volumes/development - 修改
appsettings.json中的配置为本地挂载路径:
{ "ServerConfigurationFiles": "/Volumes/development/fileName" }
- 重启.NET Core项目即可正常访问文件
方案2:尝试使用SMB URL格式(部分场景支持)
直接将配置改为Finder使用的SMB URL,注意JSON中的转义(无需额外转义斜杠):
{ "ServerConfigurationFiles": "smb://x.x.x.x/development/fileName" }
注:部分.NET Core IO API可能不直接支持smb://协议,若此方案无效,优先使用方案1
方案3:设置自动挂载共享(可选)
若需每次VPN连接后自动挂载共享,避免手动操作:
- 打开「系统偏好设置」→「用户与群组」→「登录项」
- 点击加号,选择已挂载的
development共享添加到登录项 - 后续开机并连接VPN后,共享会自动挂载,项目可直接使用本地路径
内容的提问来源于stack exchange,提问作者Anglesvar
相关产品推荐
相关产品推荐

