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

调用自制C# DLL时出现System.Runtime程序集找不到异常,求解决方案

解决System.IO.FileNotFoundException: 未能加载System.Runtime 6.0.0.0的问题

核心原因

这个错误本质是DLL项目与调用项目的.NET运行时版本不兼容,或是依赖项未正确复制到调用项目的输出目录。

具体解决步骤

  • 对齐.NET框架版本

    1. 右键Draf_Lib项目 → 属性 → 应用程序,查看其目标框架版本(比如.NET 6)
    2. 右键调用项目Draft1 → 属性 → 应用程序,将目标框架修改为与Draf_Lib完全一致的版本
    3. 注意:.NET Core/.NET 5+ 与 .NET Framework是两套不兼容的框架,不能跨版本混用
  • 使用项目引用而非手动复制DLL
    不要直接复制DLL文件到调用项目目录添加引用,而是:

    1. 右键Draft1项目 → 添加 → 项目引用
    2. 在弹出窗口中勾选Draf_Lib并确定
      这种方式会让Visual Studio自动处理依赖项的复制与版本匹配
  • 清理重建解决方案

    1. 点击Visual Studio菜单栏「生成」→「清理解决方案」
    2. 依次重新生成Draf_Lib和Draft1项目
    3. 检查Draft1的输出目录(bin/Debug或bin/Release),确认Draf_Lib.dll及相关依赖(如System.Runtime.dll)都存在
  • 检查NuGet依赖(若有)
    如果Draf_Lib使用了NuGet包,确保Draft1也安装了相同版本的对应包:

    1. 打开NuGet包管理器,搜索System.Runtime
    2. 保证两个项目的System.Runtime包版本完全一致

补充:代码说明

你的DLL代码和调用代码本身无语法问题,仅运行环境配置存在问题:
DLL代码:

using System;
namespace Draf_Lib
{
    public class Class1
    {
        public static int add(int x, int y) { return x + y; }
    }
}

调用代码(可移除多余的实例化代码):

using System;
using Draf_Lib;

namespace Draft1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            System.Console.WriteLine("Hello");
            int b = Class1.add(9, 8);
            Console.WriteLine(b);
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:04:58