运行 xap 文件时 Silverlight 程序集存储在哪里?
我们当前有一个包含 Foo.dll 的 XAP 文件,以及另一个包含更新版本 Foo.dll(但版本号相同)的 XAP 文件(名称完全不同)。
当我们运行第二个 XAP 文件时,客户端上的 Silverlight 运行时看起来好像正在从第一个 XAP 文件中获取旧版本的 Foo.dll。
有人知道 Silverlight 运行时在运行 xap 文件内容之前将其解压到哪里吗?或者,如果运行时在单个应用程序域上执行,这可以解释这些错误吗?
We currently have a XAP file which contains Foo.dll, and another XAP file (with a completely different name) which contains an updated version Foo.dll (but the same version number).
When we run the second XAP file, it looks as though the Silverlight runtime on the client, is picking up the old version of Foo.dll from the first XAP file.
Anyone know where the Silverlight runtime unzips the xap file before running its content? Or if the runtime executes on a single app domain which could explain these errors?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在您创建新应用程序域之前,它始终是单个应用程序域。
在 AssemblyInfo.cs 中指定版本号,然后使用反射从 SLV 应用程序获取它。
It is always single app domain till your create a new one.
Specify Version number in AssemblyInfo.cs, then use Reflection to get it from your SLV application.
您知道,XAP 文件只不过是 ZIP 文件,因此您可以始终将 xap 文件重命名为 zip 并检查第二个文件的内容以确保它具有正确的 dll。我不确定 silverlight 如何寻找 dll,我会让别人回答这部分。
Just you know, XAP file is nothing but ZIP file so you can double always rename the xap file to zip and examine the content of the second file to make sure it has the correct dll. I am not sure how silverlight look for dll, I will let someone answer that part.
尝试签署您的程序集。
除非您这样做,否则系统无法知道哪个版本是哪个。用于解析程序集的未签名名称不包含程序集版本,而签名程序集则包含(我认为)。
Try signing your assemblies.
Unless you do, the system has no way of knowing which version is which. The un-signed name which is used to resolve the assembly doesn't contain the assembly version version while the signed assembly does (I think).