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

ASP.NET Core 2.0 Razor Pages项目运行报错:无法找到程序集编译库位置

解决ASP.NET Core 2.0 Razor Pages运行时找不到内部程序集的问题

我之前也碰到过这个一模一样的问题!ASP.NET Core 2.0在处理本地内部程序集引用的时候确实有一些容易踩的坑,尤其是Razor Pages项目——编译通过但运行时找不到依赖,大概率是程序集没有被正确复制到输出目录,或者Razor视图编译时无法定位到它。下面是我亲测有效的几种解决方案:

1. 优先使用项目引用而非直接引用DLL

如果你的内部程序集是同一个解决方案里的项目,千万不要直接引用生成的.dll文件,改成项目引用:

  • 在Visual Studio里右键你的Razor Pages项目 → 添加 → 项目引用 → 勾选内部程序集对应的项目。
  • 这样MSBuild会自动处理依赖复制,确保编译和运行时都能找到程序集。

如果必须引用外部DLL(比如不是同一解决方案的),确保在.csproj里正确配置:

<ItemGroup>
  <Reference Include="YourAssemblyName">
    <HintPath>..\path\to\YourAssemblyName.dll</HintPath>
    <!-- 确保复制到输出目录 -->
    <Private>True</Private>
    <CopyLocal>True</CopyLocal>
  </Reference>
</ItemGroup>

2. 清理缓存并重建解决方案

有时候Visual Studio的缓存会搞鬼,导致程序集没有被正确复制:

  • 先手动删除项目的bin和obj文件夹(这两个文件夹里的缓存经常出问题)。
  • 然后在Visual Studio里点击菜单 → 生成 → 清理解决方案,接着再重新生成。
  • 或者用命令行执行:
    dotnet clean
    dotnet build
    

3. 配置运行时标识符(RuntimeIdentifiers)

ASP.NET Core 2.0对跨平台运行时的依赖解析有时候需要明确指定运行时标识符,在你的.csproj的<PropertyGroup>里添加:

<RuntimeIdentifiers>win7-x64;win-x64</RuntimeIdentifiers>

根据你的操作系统选择对应的标识符,比如Linux的话可以加linux-x64,然后重新生成项目。

4. 确保Razor编译能访问到程序集

Razor Pages的视图编译是单独的过程,有时候会找不到主项目复制的程序集,可以在.csproj里添加以下配置,强制将引用的程序集复制到发布目录的refs文件夹:

<PropertyGroup>
  <CopyRefAssembliesToPublishDirectory>true</CopyRefAssembliesToPublishDirectory>
</PropertyGroup>

5. 检查输出目录是否存在目标程序集

最后可以手动验证一下:找到项目输出目录(比如bin\Debug\netcoreapp2.0),看看里面有没有你的<assemblyname>.dll和对应的.pdb文件。如果没有,说明复制过程出了问题,回到第一步检查引用配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:18:10