在ASP.NET和Silverlight之间共享程序集

时间:2010-05-03 11:44:01

标签: .net asp.net silverlight assemblies versioning

我已经创建了一个程序集,可以在我的主应用程序和silverlight应用程序之间共享它。在开始它看起来它会工作,但现在我得到这个异常:“System.IO.FileNotFoundException被捕获,消息=”无法加载文件或程序集'System.Xml.Linq“。我正在使用.NET 3.5 Sp1和Silverlight 3。

该共享程序集使用System.Xml.Linq,但它找不到它...我认为因为它试图在.NET框架中找到该版本而不是查看Silverlight。我该如何解决这个问题?

干杯。

PS:这是完整的异常输出:


发现了System.IO.FileNotFoundException   Message =“无法加载文件或程序集'System.Xml.Linq,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。系统找不到指定的文件。”   来源= “MyApp.Metadata”   FileName =“System.Xml.Linq,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”   FusionLog =“===预绑定状态信息=== \ r \ nLOG:User = IIS APPPOOL \ DefaultAppPool \ r \ nLOG:DisplayName = System.Xml.Linq,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 \ n(完全指定)\ r \ nLOG:Appbase = file:/// C:/Users/vtortola.MyApp/Documents/MyApp/MyAppSAS/WebApplication1/WebApplication1/ \ r \ nLOG:Initial PrivatePath = C:\ Users \ vtortola.MyApp \ Documents \ MyApp \ MyAppSAS \​​ WebApplication1 \ WebApplication1 \ bin \ r \ n调用程序集:MyApp.Metadata,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null。\ r \ n === \ r \ n \ nLOG:此绑定在默认加载上下文中启动。\ r \ nLOG:使用应用程序配置文件:C:\ Users \ vtortola.MyApp \ Documents \ MyApp \ MyAppSAS \​​ WebApplication1 \ WebApplication1 \ web.config \ r \ nLOG:使用主机配置文件:C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Aspnet.config \ r \ nLOG:使用C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ config \ machine中的计算机配置文件。 config。\ r \ nLOG:策略后引用:System.Xml.Linq,Version = 2。 0.5.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 \ r \ nLOG:之前看到过相同的绑定,并且hr = 0x80070002失败。\ r \ n“   堆栈跟踪:        在MyApp.Metadata.MyAppEntity.Deserialize(String message)

1 个答案:

答案 0 :(得分:2)

您必须维护两个单独的项目 - 一个用于桌面和Silverlight。在这里查看更多信息:

How can I use non-Silverlight assemblies in a Silverlight app?

您可以在项目之间共享大部分代码(如在链接文件中从一个到另一个)。以下是Microsoft页面,它描述了如何完成此操作:

http://msdn.microsoft.com/en-us/library/ff648215.aspx