【问题标题】:VS2015 - debug my referenced projectVS2015 - 调试我引用的项目
【发布时间】:2018-04-20 14:16:03
【问题描述】:

我有一个使用项目的解决方案:一个类库项目和一个引用它的控制台应用程序。现在,当我尝试调试控制台应用程序时,它从 GAC 加载类库,而不是从解决方案的“姐妹项目”加载的版本。我只是在类库项目中更改了一行代码,调试器现在只显示反汇编而不是类库中方法的 C# 源代码。

如何让 VS2015 加载来自姊妹项目的程序集版本,而不是来自 GAC 的版本?

【问题讨论】:

  • 两个项目是否在同一个解决方案中?正如您所说的将其添加为引用,您是否在属性窗口中为该程序集设置了副本local = true?你怎么知道类库来自 GAC?也许屏幕截图会更好。但据我所知,如果两个项目在同一个解决方案中并设置了正确的属性,则在您构建解决方案后,程序集将被复制到控制台应用程序的 Bin/Debug 文件夹中。
  • @JackZhai-MSFT 是的,两个项目都在同一个解决方案中。引用中的 Copy-local 设置为 True。我想我在调试时看到引用的dll的路径包含GAC_MSIL。但是,我设法通过从 GAC 中删除 dll 然后重新部署它来进行调试。不是一个干净的解决方案,而是一个可行的解决方法。
  • 如果 GAC 中发生了相同的 dll 火灾,我认为您不需要再次添加相同的 dll 文件(项目)作为参考。也许它们是不同的版本(32位或64位):stackoverflow.com/questions/19422573/…,但如果它们都是相同的版本,我认为首先使用GAC版本:stackoverflow.com/questions/981142/…
  • 是的,这就是问题所在:我已经更改了一行代码,并希望能够直接在 Visual Studio 中调试到这个更改后的 dll,而无需将其重新部署到 GAC。显然,这是不可能的。另外,这意味着我必须将dll的调试版本部署到GAC,并且没有办法将发布版本部署到GAC,并且仍然使用开发环境中的调试版本进行调试。所以在开发机上,我需要不断的改变GAC的内容。
  • 反正既然已经解决了,我就贴出来作为答案。如果我得到其他更好的解决方案,我会编辑并分享它。祝你有美好的一天:)

标签: debugging visual-studio-2015


【解决方案1】:

如果相同的dll文件在GAC中,它会首先加载,我认为这是它忽略参考项目的原因。所以如果你真的想使用项目引用,你真的需要删除 GAC。

当然,其他成员也提出了使用版本号的建议:

https://social.msdn.microsoft.com/Forums/en-US/af5086ad-a2b6-4707-b593-0ca4f5518a6a/force-use-of-local-assembly-instead-of-gac?forum=clr

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 2016-10-03
    相关资源
    最近更新 更多