用于项目参考的Silverlight 4程序集缓存

时间:2011-09-28 19:10:58

标签: silverlight silverlight-4.0

我有几个Silverlight实用程序和控件项目,我在我的Web应用程序中使用了几个不同的应用程序。这些都在同一解决方案中进行。每个Silverlight应用程序都有自己的页面。

示例设置

  • 公用事业
  • CommonResources 我为这些项目设置了强名称键并创建了extmap,但dll仍然在xaps中。该版本在assembly.cs中定义为1.0.0.0。

           CommonResources     1.0.0.0     {public key here}     Silverlight.Common.CommonResources.dll           

这些都是参考Utilities和CommonResources   - ManageFoo   - ManageBar   - 等等

我可以组装缓存实用程序和CommonResources dll吗?

2 个答案:

答案 0 :(得分:1)

我不明白为什么你不能在这种情况下。事实上,它似乎是理想的候选人。

您需要确保为Utilities和CommonResources dll生成extmap个文件。该文件如下所示:

<?xml version="1.0"?>
<manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <assembly>
    <name>System.Windows.Controls.Data.DataForm.Toolkit</name>
    <version>2.0.5.0</version>
    <publickeytoken>31bf3856ad364e35</publickeytoken>
    <relpath>System.Windows.Controls.Data.DataForm.Toolkit.dll</relpath>
    <extension downloadUri="System.Windows.Controls.Data.DataForm.Toolkit.zip" />
  </assembly>

</manifest>

并且具有以下形式的名称:

<dllname>.extmap.dll

并且必须与dll本身位于同一位置。

答案 1 :(得分:1)

您可以尝试将一个XML文件(例如,名为Common.CommonResources.extmap.xml)添加到CommonResources项目,并将“Copy to Output Directory”设置为“Copy if newer”,其中包含以下内容:

<?xml version="1.0"?>
<manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <assembly>
    <name>Common.CommonResources</name>
    <version>*.*.*.*</version>
    <publickeytoken>*</publickeytoken>
    <relpath>Common.CommonResources.dll</relpath>
    <extension downloadUri="Common.CommonResources.zip" />
  </assembly>

</manifest>