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

VS2015调试引用项目问题:如何加载解决方案内类库而非GAC版本?

解决VS2015调试时加载GAC类库而非本地项目的问题

我之前也踩过一模一样的坑!明明刚改完类库的代码,调试控制台应用时却死活加载GAC里的旧版本,连源码都看不到,简直闹心。给你几个靠谱的解决办法,按顺序试下来基本能搞定:

1. 检查项目引用的「复制本地」设置

  • 右键控制台应用里的类库引用 → 打开「属性」面板
  • 把「复制本地」改成True,这样编译时会自动把本地类库的dll复制到控制台应用的输出目录,让程序优先加载本地文件

2. 添加程序集绑定重定向(针对强命名类库)

如果你的类库是强命名的,且GAC里的版本和本地版本号一致,VS可能还是会优先找GAC。可以在控制台应用的App.config里加一段配置,强制加载本地版本:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="你的类库名称" publicKeyToken="你的公钥令牌" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-999.999.999.999" newVersion="本地类库的版本号" />
        <codeBase version="本地类库的版本号" href="你的类库.dll" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

注意:把上面的占位符换成你类库的实际信息,版本号可以去类库项目的「属性」→「应用程序」→「程序集信息」里查看

3. 临时移除GAC中的对应类库(终极方案)

如果前面两步都没用,那就只能暂时把GAC里的旧版本类库删掉:

  • 以管理员身份打开命令提示符
  • 执行命令:gacutil /u 你的类库全名(类库全名格式是「名称, Version=版本号, Culture=neutral, PublicKeyToken=公钥令牌」,可以在类库dll的属性里找到)
  • 重启VS,重新编译整个解决方案,调试时就会加载本地修改后的类库了

4. 检查调试相关设置

  • 右键控制台应用项目 → 「属性」→「调试」
  • 确保「启用本机代码调试」没有勾选(如果不需要调试本机代码的话),这个选项有时候会干扰程序集加载逻辑
  • 确认「工作目录」指向控制台应用的输出目录(一般是bin\Debug)

试完这些步骤,应该就能让VS加载你本地修改后的类库版本,调试时也能正常看到C#源代码了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:24:01