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

如何在.NET Core测试应用中使用自定义corefx构建版本

在.NET Core测试应用中使用自定义构建的corefx版本

我之前也折腾过自定义corefx的替换,分享几个靠谱的方法,根据你的场景选就行:

方法1:直接引用自定义程序集(快速验证)

如果只是简单测试修改后的某个类,直接引用构建好的.dll最直接:

  • 找到corefx构建输出的程序集目录,一般在artifacts/bin/<目标类所在程序集名>/<构建配置(比如Release)>/net<你的目标框架版本>下面,比如修改了System.Collections,就找artifacts/bin/System.Collections/Release/net6.0
  • 打开你的测试应用项目,右键“添加”→“引用”,选择浏览,找到上面路径下的.dll和.pdb文件,添加引用
  • 记得在引用的属性里把“复制本地”设为True,这样运行时程序集才会被复制到输出目录,避免找不到

方法2:用自定义NuGet包(规范场景推荐)

如果你的修改涉及多个corefx程序集,用NuGet管理更省心:

  • corefx构建时会自动生成NuGet包,路径在artifacts/packages/<构建配置>/Shipping(正式包)或NonShipping(包含调试信息的包)
  • 给测试应用配置本地NuGet源:可以直接在项目文件(.csproj)里添加包源,比如:
    <ItemGroup>
      <PackageSource Include="D:\corefx\artifacts\packages\Release\Shipping" />
    </ItemGroup>
    
  • 修改项目里的PackageReference,指定你构建的自定义版本号(版本号可以看NuGet包的文件名,比如System.Collections.6.0.0-custom.1.2345.6.nupkg里的6.0.0-custom.1.2345.6):
    <PackageReference Include="System.Collections" Version="6.0.0-custom.1.2345.6" />
    
  • 注意:所有依赖的自定义corefx包都要替换成这个版本,不然会出现版本冲突的错误

方法3:通过runtimeconfig.json重定向运行时(替换全局corefx)

如果要让整个.NET Core运行时都使用你的自定义corefx,需要修改应用的runtimeconfig.json:

  • 在测试应用的输出目录(或者项目根目录,构建时会自动复制)创建/修改YourAppName.runtimeconfig.json,添加程序集绑定和探测路径:
    {
      "runtimeOptions": {
        "assemblyBinding": {
          "dependencies": [
            {
              "name": "System.Collections",
              "publicKeyToken": "b03f5f7f11d50a3a",
              "version": "6.0.0-custom.1.2345.6"
            }
          ]
        },
        "additionalProbingPaths": [
          "D:\corefx\artifacts\bin\System.Collections\Release\net6.0",
          "D:\corefx\artifacts\bin\System.Runtime\Release\net6.0"
        ]
      }
    }
    
  • additionalProbingPaths是告诉运行时去哪里找你的自定义程序集,把所有修改过的程序集路径都加上

关键注意事项

  • 必须保证测试应用的目标框架版本和自定义corefx构建的版本完全一致,比如你构建的是net6.0,测试应用不能用net7.0
  • 每次替换后,记得删除测试应用的bin和obj文件夹,清理缓存,避免旧程序集干扰
  • 如果遇到版本冲突,用dotnet list package命令查看当前项目的包依赖,找出还在使用官方版本的包,替换成自定义版本

关于官方指导文档,corefx的仓库wiki里有关于本地构建和替换使用的说明,核心步骤就是上面这些,不用额外找外链啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:39:08