- 我使用的是 Visual Studio 2008 专业版。
- 我的开发环境是在 Microsoft Virtual PC 6.0.156.0 中运行的虚拟机
- 出于在这个问题之外更好讨论的原因,我在网络共享上拥有源代码。此外,一旦构建完成。所有引用(仅发布 dll 和 pdb)都放置在此网络共享上的“Assemblies”文件夹中。因此,每当我想要添加引用时,项目都会通过导航到此 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 文件夹中,因为它根本不在我的虚拟机中的任何文件夹中。此 5/1 dll 已替换为 5/3 dll。怎么没有用新的 DLL 重新编译?
为了哈哈,我转到“Assemblies”文件夹并将其删除。现在它消失了。我现有的项目根本不应该链接这个 DLL。没有任何。我删除 bin/obj 文件夹,清理,重建。它编译成功。我查看 bin 文件夹,有一个 5/1 dll。
从哪里获取这个 DLL?它不再存在于我的虚拟机中任何文件夹的任何目录中或此网络共享上的程序集文件夹中。哎呀,5/3 dll 也不存在。没有dll啊任何地方!然而,我的项目能够使用旧的不存在的 DLL 成功重新编译。某处某处以某种方式缓存此内容。我完全被难住了。
谢谢。
最佳答案
看起来是的,即使我也遇到了完全相同的问题。在此位置搜索 Dll 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\' 我在一个与我的项目名称同名的文件夹下找到了我的 dll(在许多其他名称奇怪的文件夹中)。
尝试删除 Windows\Microsoft.Net\Framework 中存在的 dll。这可能有帮助。
关于visual-studio-2008 - Visual Studio 引用是否以某种方式缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16366507/