“您是不是缺少程序集参考?”编译错误 - Visual Studio

Posted

技术标签:

【中文标题】“您是不是缺少程序集参考?”编译错误 - Visual Studio【英文标题】:"Are you missing an assembly reference?" compile error - Visual Studio“您是否缺少程序集参考?”编译错误 - Visual Studio 【发布时间】:2010-10-01 20:21:43 【问题描述】:

我目前正在为我们公司的其他应用程序开发一个服务器控件,以与 WCF 服务交互。每次我进行更改代码更改并重新编译控件时,我都会将 AsseemblyInfo.cs 中的 AssemblyVerison 和 AssemblyFileVersion 类加一。例如,我的最新版本从 1.0.07.0 升级到 1.0.08.0。

当消费应用程序通过复制bin目录中的最新文件来更新文件并尝试编译时,它们会收到以下错误:

类型或命名空间名称“MyControl” 命名空间中不存在 'MyNamespace'(您是否缺少 汇编参考?)

为了解决这个错误,他们必须删除当前引用并重新添加引用。

有什么方法可以更新服务器控件而无需删除并重新添加引用?

我不是强命名服务器控件。 @JPunyon - 你的意思是让消费应用程序将服务器控制项目添加到他们的解决方案中吗?

【问题讨论】:

这是一篇关于解决装配问题的好文章 - codeandyou.com/2017/08/… 【参考方案1】:

在我的例子中,它是一个使用 Target Framework:“.NET Framework 4.0 Client Profile”定义的项目,它试图引用使用 Target Framework:“.NET Framework 4.0”定义的 dll 项目。

一旦我将项目设置更改为使用 Target Framework:“.NET Framework 4.0”,一切都构建得很好。

右键项目->属性->应用程序->目标框架

【讨论】:

【参考方案2】:

右键单击解决方案资源管理器中的程序集引用,属性,禁用“特定版本”选项。

【讨论】:

【参考方案3】:

如果上述解决方案均无效,请尝试这个 10 秒修复。

在解决方案资源管理器中导航到启动项目。右键单击,属性 > 应用程序 > 目标框架。将目标框架更改为其他任何内容。按 Yes 进入确认对话框。让更改几秒钟后生效,然后将框架切换回之前的状态。

希望错误会像对我一样为您消失!

【讨论】:

【参考方案4】:

您是否对程序集进行了强命名?在这种情况下,自动增加您的内部版本号不是一个好主意,因为对于每个新的内部版本号,您还必须更新所有引用。

【讨论】:

【参考方案5】:

我碰到了指向正确方向的答案,但是...

对于那些使用 Visual C++ 的人:

如果您需要关闭版本的自动增量,您可以在“AssemblyInfo.cpp”文件中更改此值(所有 CLR 项目都有一个)。给它一个不带星号的真实版本号,它会按照你想要的方式工作。

别忘了在你的程序集上实现你自己的版本控制!

【讨论】:

【参考方案6】:

在我的情况下,我必须将 Copy Local 设置更改为 true(在解决方案资源管理器中右键单击程序集,选择属性,找到并更改 Copy Local 属性的值)。更改此设置后,我的 WCF 服务的发布将文件复制到服务器并且错误消失了。

【讨论】:

【参考方案7】:

我在 TFVC 存储库上使用 Azure DevOps Services(MS 托管)构建管道时遇到此错误。

在我的情况下,我在一个分支中工作,并且不小心从主干中的包文件夹而不是分支中添加了引用。一旦我从分支中添加了引用,它就开始成功编译。

即,在处理 \branch-beta\sierra.csproj 时,我不小心引用了 \trunk\packages\delta.dll。显然,我需要引用 \branch-beta\packages\delta.dll 来代替。发生混淆是因为路径没有在 Add Reference 窗口中显眼地显示,并且我没有仔细检查。

【讨论】:

【参考方案8】:

我在 Visual Studio 2019 版本 16.4.4 中发现了这个问题

我通过发现

解决了大多数问题
packages.config

缺少适当的参考

例如:

<package id="System.Runtime" version="4.3.0" targetFramework="net461" />

【讨论】:

【参考方案9】:

删除解决方案目录的“Web.Debug.config”和“Web.Release.config”文件,它应该会删除所有错误

【讨论】:

您能否进一步解释这里发生了什么,为什么您的答案有效?错误的原因是什么? (您是否缺少程序集参考?)我有 24 个相同的错误? ,首先我尝试修复程序集引用(但一切似乎都很好),最后我尝试删除我上面提到的两个文件,所有错误都消失了,(我猜在进行调试或发布构建时 .Net Framework 可能会从一个版本跳转到另一个,这只是一个猜测)。【参考方案10】:

如果代码以前正常工作并且现在抛出错误,如上述答案中所述,其中一个配置可能已被修改。在蛮力方法中,关闭 VS 编辑器并删除 .sln 文件同一目录中的 .vs 文件夹。所有配置都将被清除并从 repo 文件中提取。

【讨论】:

【参考方案11】:

在 Visual Studio 2017 社区中创建新的空白 UWP 项目时,出现此错误:

还原 NuGet 缓存后,引用在项目中重新出现。

【讨论】:

以上是关于“您是不是缺少程序集参考?”编译错误 - Visual Studio的主要内容,如果未能解决你的问题,请参考以下文章

错误 CS0234:命名空间“UnityEditor”中不存在类型或命名空间名称“iOS”。您是不是缺少程序集参考?

如何解决这个问题?,您是不是缺少程序集参考

为Visual Studio项目生成clang编译数据库

错误 3274 外部表不是预期的格式

错误,请使用支持此项目的版本

c语言中怎么用命令提示窗口编译宏定义并打印出来!请指教.谢谢了.