【问题标题】:C# dll not found at compile time编译时未找到 C# dll
【发布时间】:2011-09-19 11:54:16
【问题描述】:

我正在用 .Net 3.5 编写应用程序。

到目前为止,我在解决方案中有 3 个项目。从我的主项目中添加对其他项目的引用时,智能感知设法从其他项目的 dll 中找到类,但在编译时它似乎“丢失”了引用。

这可能是因为我最初使用目标框架 .Net 4.0 创建了项目。但是,由于我需要使用 ASP.NET Web 服务,我不得不降级到 3.5。

任何帮助将不胜感激。

【问题讨论】:

  • 编译时是否出现编译器错误?如果是这样,请发布它。或者你得到一个运行时错误?您是否已将所有项目降级到 .NET 3.5?
  • 是的,我得到一个编译器错误。错误指出“找不到 MyClass”,即当您忘记添加对项目的引用时遇到的相同错误

标签: c# .net web-services compilation


【解决方案1】:

引用的项目必须是 Copy Local : True 参考 -> 属性 -> 复制本地:真

【讨论】:

  • 在部署 dll 尚不可用的程序集时,需要复制本地。我认为这不是问题。
  • 感谢您的快速回复。但是我不确定在哪里可以找到“复制本地”选项
  • 只需打开项目的“参考”部分,单击所述参考并在属性网格中,将“复制本地”设置为 true。
【解决方案2】:

批量清理解决方案中的所有项目,确保依赖关系图中的所有项目都针对 .NET 3.5 框架。检查 .csproj 文件(使用文本编辑器打开)中引用的 HintPath 以获取对外部 DLL 的引用,并确保它们都是

但是,由于我需要使用 ASP.NET Web 服务,我不得不降级到 3.5。

.NET 4 中还有几个不同的 Web 服务项目。我不太明白这个举动。

【讨论】:

  • 如果我将目标框架设置为 .Net 4.0,Visual Studio 将隐藏 asp.net Web 服务。相反,只有 WCF 服务可见。顺便说一句,我所有清理过的项目及其目标框架都设置为 3.5
【解决方案3】:

您有项目引用,智能感知看到您引用的类,但是在编译时,编译器似乎找不到引用的程序集。

我认为这种行为有两个可能的原因:

  1. 您的主项目引用的 .NET 框架版本低于您的库项目(这是最可能的原因)。
  2. 您的库项目根本不会构建/或以错误的顺序构建(检查配置管理器中的设置。在 solition explorer 中右键单击您的解决方案将其打开)。

【讨论】:

  • 第 1 点:不,所有项目的 .Net 框架都是 3.5 第 2 点:尝试以正确的顺序一次编译 1 个,问题仍然存在:/
  • 你编译所有项目的配置/平台设置都一样吗?
猜你喜欢
  • 2018-09-25
  • 1970-01-01
  • 2014-04-28
  • 1970-01-01
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 2013-02-05
  • 1970-01-01
相关资源
最近更新 更多