33

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

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

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

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

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

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

4

11 回答 11

38

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

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

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

于 2014-07-15T10:44:24.200 回答
19

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

于 2009-01-16T17:56:26.897 回答
10

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

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

该错误有望像对我一样为您消失!

于 2020-03-02T15:05:18.313 回答
2

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

于 2009-01-16T16:32:26.237 回答
1

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

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

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

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

于 2011-12-13T00:05:58.913 回答
0

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

于 2016-08-17T17:04:09.017 回答
0

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

在此处输入图像描述

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

于 2018-04-21T02:43:31.657 回答
0

我在 TFVC 存储库上的 Azure DevOps Services(MS 托管)构建管道中遇到了这个错误。

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

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

于 2019-03-28T16:51:28.800 回答
0

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

我通过发现

packages.config

缺少适当的参考

例如:

<package id="System.Runtime" version="4.3.0" targetFramework="net461" />
于 2020-02-03T08:31:28.437 回答
0

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

于 2021-01-13T01:00:45.713 回答
0

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

于 2021-03-22T07:19:14.760 回答