“您是否缺少程序集引用?”编译错误 - Visual Studio

问题描述 投票:24回答:7

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

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

命名空间“MyNamespace”中不存在类型或命名空间名称“MyControl”(您是否缺少程序集引用?)

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

有没有办法更新服务器控件而无需删除和重新添加引用?

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

visual-studio assemblies reference
7个回答
17
投票

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


30
投票

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

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

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


2
投票

你是否强力命名你的装配?在这种情况下,自动增加您的内部版本号并不是一个好主意,因为每个新的内部版本号都需要更新所有引用。


1
投票

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

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

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

只是不要忘记在程序集上实现自己的版本控制!


0
投票

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


0
投票

在Visual Studio 2017社区中创建新的Blank UWP项目时,出现了此错误。

enter image description here

在建议的补救措施(恢复NuGet缓存)之后,参考在项目中重新出现。


0
投票

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

在我的情况下,我在一个分支机构内工作,不小心从trunk中的package文件夹而不是分支中添加了引用。一旦我从分支中添加了引用,它就开始成功编译。

即,在处理\ branch-beta \ sierra.csproj时,我不小心引用了\ trunk \ packages \ delta.dll。显然,我需要引用\ branch-beta \ packages \ delta.dll。发生混淆是因为路径没有在“添加引用”窗口中突出显示,我没有仔细检查。

© www.soinside.com 2019 - 2024. All rights reserved.