我在构建一个引用位于项目 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' -- 系统找不到指定的文件。'
Intellisense 同样提示 命名空间 'Client' 中不存在类型或命名空间 'Api'
因为找不到 DLL。
如果您认为这是重复的,请告诉我,但我查看了几篇类似的帖子,这些解决方案确实解决了我的问题。以下是一些示例:
- Visual Studio 2010 — are you missing a using directive or an assembly reference?
- VS2010 - Getting “type or namespace name could not be found” but everything seems ok?
- Stymied by ASP.NET Compilation Error CS0009
- Metadata file '…\Release\project.dll' could not be found in Visual Studio
- Visual Studio 2010: Metadata file “…/Debug/Graph.dll” could not be found
- Metadata file … could not be found error when building projects
具体来说,我尝试了以下解决方案(以及这些解决方案的组合):
- 清理并重建了我的项目。
- 确保目标框架不是 .NET 的“客户端配置文件”版本
- 已验证 dll 已添加为项目引用
- 删除并重新添加项目引用
- 已验证该项目在 Visual Studio 的“引用”部分中显示了 DLL
- 修复 .NET
- 验证了 DLL 的位置(它在错误给出的本地项目的 bin 文件夹中)
- 尝试过其他版本的 .NET
- 关闭并重新启动 Visual Studio
- 重启我的机器
- 已验证“using”语句周围没有隐藏字符
- 删除了自上次工作构建以来的所有代码更改
- 验证配置管理器中的设置,包括选中“构建”
调用 DLL 的项目是一个小型类库,与另一个小型项目(控制台应用程序)一起驻留在解决方案中。 DLL 是一个外部 DLL,我已经在此项目/解决方案中成功使用了数周。无论我是从解决方案还是自己构建项目,都会出现错误。
关于可能发生的事情有什么想法吗?
最佳答案
您是否不小心在项目中包含了 bin 文件夹?如果是,那可能会导致问题。您不能在项目中包含 bin 文件夹,因为 bin 文件夹将由 VS 创建。如果您不小心将 bin 文件夹包含在您的项目中,则 bin 项目将被设置为复制到输出,当您编译时,该文件将被删除并由 Visual Studio 复制到输出,这会触发某些文件丢失的奇怪行为。
希望对您有所帮助
关于c# - VS 2010 : C# Project Cannot Open DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13648286/