如何解决Visual Studio在调试期间缓存程序集的旧版本
我当前正在使用Visual Studio 2019 Enterprise。自VS 2017以来,我遇到了这个问题,也许更远了。问题在于,对于某些项目(没有明显的押韵或原因),VS似乎会缓存依赖程序集的旧版本。调试时,如果我修改了这些程序集中的代码,则不会遇到中断,也不会遇到断点。解决方案始终是重建所有内容……两次……然后启动。
恕我直言,这使疑难解答的原因是不一致,因为并非每个项目都发生这种情况,但是一旦给定项目出现问题,该项目就始终存在问题。以下是有关我们解决方案结构的一些背景知识:
我们在单独的解决方案/项目中创建所有中层库,然后构建这些库的调试版本。我们将这些调试程序集的dll / pdb文件部署到一个通用的BIN filder,然后为具有依赖项的任何项目引用该文件。我们的主要应用程序是具有.net远程处理功能的Web应用程序。我们的中间层服务在实现服务层并引用我提到的那些中间层库的“远程服务器”应用程序中公开。
因此,例如,问题是我将对某些程序集进行一些更改。我们称它为corp.shopping.businessobjects。我构建它,将其部署到公共容器中,并由Corp.Shopping.RemotingServer项目引用。如果我对Corp.Shopping.BusinessObjects中的类进行了更改,部署了该类,然后调试Remoting Server,则断点在该代码中不起作用,并且不会更改新的代码。就像正在使用程序集的某些缓存版本一样,即使在项目的输出bin,公共bin和远程服务器的输出bin中查看dll / pdb文件本身,也都显示了正确的日期/时间。
很明显,当您不能依赖于代码的完整性来调试它时,这使单元测试成为绝对的噩梦。关于如何诊断这里发生的事情有什么建议吗?我感觉这是Visual Studio的某种错误,但我感到惊讶的是,如果是这样的话,它已经存在了很长时间。我不可能是唯一经历过这种事情的人。顺便说一句,它不只是“我”;它也是任何其他开发商。再说一次,一旦这对于一个特定项目是一个问题,那似乎永远就是那个项目的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。