我们目前有一个包含Foo.dll的XAP文件,以及另一个包含更新版本Foo.dll(但版本号相同)的XAP文件(名称完全不同)。
当我们运行第二个XAP文件时,它看起来好像是客户端上的Silverlight运行时从第一个XAP文件中获取旧版本的Foo.dll。
任何人都知道Silverlight运行时在运行其内容之前解压缩xap文件的位置?或者,如果运行时在单个应用程序域上执行,可以解释这些错误吗?
答案 0 :(得分:0)
您知道吗,XAP文件只是ZIP文件,因此您可以将xap文件重命名为zip并检查第二个文件的内容,以确保它具有正确的dll。我不确定silverlight如何看待dll,我会让某人回答这一部分。
答案 1 :(得分:0)
尝试签署程序集。
除非您这样做,否则系统无法知道哪个版本是哪个版本。用于解析程序集的未签名名称在签名程序集执行时不包含程序集版本版本(我认为)。
答案 2 :(得分:0)
在您创建新域名之前,它始终是单个应用程序域。 在AssemblyInfo.cs中指定版本号,然后使用Reflection从SLV应用程序中获取它。