代码改变世界

Silverlight清单配置错误:InitializeError 2103

2012-11-22 08:33  slmk  阅读(2419)  评论(0编辑  收藏  举报

出现原因

今天试图将Silverlight程序进入点设为引用的类库里面的App.xaml,结果发现行不通,出现如下错误:

SCRIPT5022: Silverlight 应用程序中未处理的错误
代码: 2103
类别: InitializeError
消息: 应用程序无效或格式不正确: 请查看清单

所谓的“程序清单”是指:AppManifest.xaml。位于项目的properties文件夹下有此文件的模板。一般出现此错误的原因是Silverlight找不到入口点了,就像C程序找不到main函数了。

结论

App.xaml只能设为主应用程序的,不能设为类库的。准确的说应该是VS 2010不支持,只能手动打包XAP,把你包含入口App.xaml的dll放在<Deployment.Parts>第一行:

<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="SLLib" EntryPointType="SLLib.App" RuntimeVersion="5.0.61118.0">
  <Deployment.Parts>
    <AssemblyPart x:Name="SLLib" Source="SLLib.dll" />
    <AssemblyPart x:Name="SLApp" Source="SLApp.dll" />
  </Deployment.Parts>
</Deployment>

 因为Silverlight自动寻找第一个程序集的入口点,而VS打包的xap,默认是把主应用程序设为第一个。手动打包还是比较麻烦,所以我主动绕开了,还是乖乖的用主程序下的App.xaml吧!