You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 5 Razor应用执行dotnet BaGet.dll报404错误,求正确用法

解决dotnet BaGet.dll启动出现404的问题

核心原因

执行dotnet BaGet.dll时,应用的工作目录和dotnet run/直接运行exe时不一致,导致静态文件路径计算错误。dotnet run默认以项目文件所在目录作为工作目录,直接运行exe时工作目录是exe所在目录,但手动执行dotnet BaGet.dll时,当前工作目录可能不在正确位置,进而影响../BaGet.Web的路径解析。

可行解决方案

  • 切换到正确工作目录执行命令
    找到BaGet.dll所在的输出目录(通常是bin/Release/net5.0或bin/Debug/net5.0),先切换到项目根目录(即包含BaGet.Web文件夹的目录),再运行命令:

    cd /path/to/your/project/root
    dotnet ./BaGet/bin/Release/net5.0/BaGet.dll
    
  • 显式指定内容根目录
    通过--content-root参数强制指定应用的内容根目录为项目根目录,让路径计算逻辑和dotnet run保持一致:

    dotnet BaGet.dll --content-root /path/to/your/project/root
    

    替换/path/to/your/project/root为实际包含BaGet.Web文件夹的目录路径。

  • 修改路径计算逻辑(可选)
    若不想依赖工作目录,可以改为基于程序集所在目录计算静态文件路径,避免相对路径受工作目录影响:

    var assemblyDir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
    var webPath = Path.Combine(assemblyDir, "..", "..", "..", "BaGet.Web");
    var provider = new PhysicalFileProvider(Path.GetFullPath(webPath));
    

内容的提问来源于stack exchange,提问作者Anibal Yeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 11:34:59