2
  • 我正在使用 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 成功重新编译。某事,某处以某种方式缓存这个。我完全被难住了。

谢谢。

4

1 回答 1

3

看起来是的,即使我遇到了完全相同的问题。在此位置 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\' 中搜索 Dll 时,我在一个与我的项目名称相同的文件夹下找到了我的 dll(在许多其他名称奇怪的文件夹)。

尝试在 Windows\Microsoft.Net\Framework 中删除您的 dll。这可能会有所帮助。

于 2013-09-11T16:26:16.110 回答