Windows10/11下从UNC路径运行.NET 9控制台程序无提示崩溃
.NET 9控制台程序UNC路径运行崩溃问题解答
针对疑问的解答
- 是否存在已知问题:是的,.NET 9在Windows系统下从UNC路径运行控制台程序存在已知兼容性问题,属于运行时安全策略变更导致的行为差异。
- 影响网络共享路径的变更:.NET 9引入了更严格的文件系统信任策略,默认将UNC路径标记为“非信任位置”,限制程序初始化流程,导致程序无提示崩溃。
- 新增的安全限制:.NET 9新增了
System.IO.FileLoadPolicy相关配置,默认禁止从非信任网络路径加载程序集,这是核心的安全限制点。
解决建议
- 添加运行时配置文件:在程序所在UNC路径下创建/编辑
runtimeconfig.json,加入以下配置以允许UNC路径运行:
{ "runtimeOptions": { "configProperties": { "System.IO.FileLoadPolicy.AllowUncPaths": true } } }
- 使用dotnet命令启动:若为框架依赖型程序,直接执行
dotnet \\computername\c$\folder\app.dll,可绕过部分路径限制。 - 调整本地安全策略:打开
gpedit.msc,导航至计算机配置>管理模板>Windows组件>Microsoft .NET Framework>安全策略,启用“允许从网络位置加载程序集”。 - 临时回退版本:若需快速恢复业务,可将程序编译为.NET 6/8版本,这些版本无此默认限制。
额外排查步骤
- 在命令提示符下直接执行UNC路径的程序,查看是否有隐藏的命令行错误输出。
- 安装.NET 9最新补丁包,部分早期版本的UNC路径问题已被官方修复。
内容的提问来源于stack exchange,提问作者Vincent
相关产品推荐
相关产品推荐

