4

我在构建一个引用位于项目 bin 文件夹中的 DLL 的项目时遇到问题,直到昨天,该项目的构建和运行都没有问题。

我得到的错误是fatal error CS0009: Metadata file 'c:\MyProject\bin\myClient.dll' could not be opened -- 'Error importing module 'myClient.netmodule' of assembly 'c:\MyProject\bin\myClient.dll' -- The system cannot find the file specified.'Intellisense 同样抱怨,The type or namespace 'Api' does not exist in the namespace 'Client'因为它找不到 DLL。

如果您认为这是重复的,请告诉我,但是我查看了几篇类似的帖子,并且解决方案确实解决了我的问题。这里有些例子:

具体来说,我尝试了以下解决方案(以及这些解决方案的组合):

  • 清理并重建了我的项目。
  • 确保目标框架不是 .NET 的“客户端配置文件”版本
  • 已验证 dll 已添加为项目引用
  • 删除并重新添加了项目参考
  • 已验证项目是否在 Visual Studio 的“引用”部分中显示 DLL
  • 修复.NET
  • 验证 DLL 的位置(它在错误给出的本地项目的 bin 文件夹中)
  • 尝试了其他版本的 .NET
  • 关闭并重新启动 Visual Studio
  • 重新启动我的机器
  • 已验证“使用”语句周围没有隐藏字符
  • 删除了自上次工作构建以来的所有代码更改
  • 验证配置管理器中的设置,包括选中“构建”

调用 DLL 的项目是一个小型类库,它与另一个小型项目(控制台应用程序)一起驻留在解决方案中。DLL 是一个外部 DLL,我已经在这个项目/解决方案中成功使用了几个星期。无论我是从解决方案还是自己构建项目,都会出现错误。

关于可能发生的事情有什么想法吗?

4

2 回答 2

1

您是否不小心在项目中包含了 bin 文件夹?如果是,那可能会导致问题。您不能在项目中包含 bin 文件夹,因为 bin 文件夹将由 VS 创建。如果您不小心在项目中包含 bin 文件夹,bin 项目将设置为复制到输出,当您编译时,该文件将被删除并由 Visual Studio 复制到输出,这会触发某些文件丢失的奇怪行为。

希望这有帮助

于 2012-11-30T15:46:06.150 回答
0

好吧,我不确定这里到底发生了什么,但这是最终解决问题的原因:

老式的删除每个文件并从头开始从这些文件重建项目。我给一些回复 +1 是因为它们值得考虑,并且因为 Jonathon Wood 建议的某些地方可能有一个混乱的参考。

于 2012-11-30T16:02:17.217 回答