2009-01-16 108 views
20

我目前正在为我们公司的其他应用程序的服务器控件工作,以与WCF服务进行接口。每次我更改代码并重新编译控件时,我都会将AssembleInfoInfo.cs中的AssemblyVerison和AssemblyFileVersion类增加1。例如,我的最新版本从1.0.07.0到1.0.08.0。“您是否缺少程序集参考?”编译错误 - Visual Studio

当消费应用的bin目录复制最新的文件更新文件并尝试编译,他们会收到以下错误:

The type or namespace name 'MyControl' does not exist in the namespace 'MyNamespace' (are you missing an assembly reference?)

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

有什么办法可以更新服务器控件而不必删除并重新添加引用?

更新:
我没有强有力的命名服务器控件。
@JPunyon - 你的意思是消费应用程序将服务器控制项目添加到他们的解决方案?

+0

这是一篇关于修正装配问题的好文章 - http://www.codeandyou.com/2017/08/missing-assembly-reference-in-visual.html – virender 2017-08-18 09:45:33

回答

12

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

2

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

1

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

对于那些使用Visual C++谁是:

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

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

25

就我而言,这是一个使用Target Framework定义的项目:“.NET Framework 4.0 Client Profile”,它试图引用使用Target Framework定义的dll项目:“.NET Framework 4.0”。

当我更改项目设置以使用Target Framework:“.NET Framework 4.0”时,一切都很好地构建。

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

0

就我而言,我不得不地方设置更改复制到真(右键单击装配在Solution Explorer中,选择属性,找到并更改复制本地属性的值)。一旦这个设置被改变,我的WCF服务的发布将文件复制到服务器,错误消失了。