- 我正在使用 Visual Studio 2008 专业版。
- 我的开发环境是我在 Microsoft Virtual PC 6.0.156.0 中运行的 VM
- 出于在这个问题之外更好地讨论的原因,我在网络共享上有源代码。此外,一旦构建完成。所有引用(仅发布 dll 和 pdb)都放置在此网络共享上的“程序集”文件夹中。因此,任何时候我想添加引用的项目都通过导航到此 Assemblies 文件夹添加了引用。我没有直接链接到其他项目。
这是我看到的莫名其妙的景象:
我在 5 月 1 日制作了一个全新的 dll,并将其放在我的 Assemblies 文件夹中。当时我也打开了一个已有的项目,并添加了这个新的DLL作为参考。
今天,我不得不更改那个 DLL。我进行更改、构建并将日期为 5/3 的新 DLL 和 PDB 放置在 Assemblies 文件夹中。
我打开这个现有项目,删除我的 bin/obj 文件夹,清理解决方案,重建解决方案 - 当我查看这个项目的 bin 文件夹时,它有 5/1 dll 和 5/3 pdb。没错,它有 5 月 1 日的 DLL。5/1 dll 存在的唯一位置是在这个 Assemblies 文件夹中,因为它根本不在我的 VM 中的任何文件夹中。此 5/1 dll 已替换为 5/3 dll。怎么不使用新的 DLL 重新编译?
对于哈哈,我去了 Assemblies 文件夹并将其删除。现在它消失了。我现有的项目根本不应该有链接这个 DLL 的能力。没有任何。我删除 bin/obj 文件夹,清理,重建。它编译成功。我查看 bin 文件夹,有一个 5/1 的 dll。
它从哪里得到这个 DLL?它不再存在于我的 VM 中任何文件夹的任何目录中或此网络共享上的 Assemblies 文件夹中。哎呀,5/3 dll也不存在。没有dll。任何地方!!!然而,我的项目能够使用旧的不存在的 DLL 成功重新编译。某事,某处以某种方式缓存这个。我完全被难住了。
谢谢。