我已经创建了一个程序集,可以在我的主应用程序和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)
答案 0 :(得分:2)
您必须维护两个单独的项目 - 一个用于桌面和Silverlight。在这里查看更多信息:
How can I use non-Silverlight assemblies in a Silverlight app?
您可以在项目之间共享大部分代码(如在链接文件中从一个到另一个)。以下是Microsoft页面,它描述了如何完成此操作: