c# – 在一个应用程序中使用不同版本的DLL

我有一个Silverlight类库,Silverlight应用程序和常规C#WCF服务都在使用它.

Silverlight应用程序调用WCF服务来读取/写入一些数据.它们都使用公共库来操作传递的数据.

一切都编译得很好,但是当我们运行应用程序时,webservice会在调用silverlight库时抛出以下错误:

“无法加载文件或程序集’System.Xml,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e’或其中一个依赖项.系统找不到指定的文件.”

这是因为silverlight类库引用了System.Xml的v2.0.5,但WCF服务引用了System.Xml的v3.5.

有没有办法可以引用这两个版本而不是错误?

解决方法:

如果您拥有公共库的源代码,那么最好的方法是拥有3个项目,一个用于SL,一个用于WCF,另一个用于共享库源.然后,您可以使用visual studio的add as link选项从SL和WCF项目中的共享库中引用源文件.然后可以根据正确的.Net库版本编译源文件.关于这一点的好处是由于源是引用副本,当您对共享库进行更改时,SL和WCF项目都会更新而不会重复.

我们一直在我们的产品中使用这种方法,它运作良好.

HTH

相关文章

如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的...
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,...
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如...
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不...
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:...
我需要根据Silverlight中的某些配置值设置给定控件的Style.我...