银光应用程序无法运行。我收到一个无效或格式不正确的应用程序错误。

14
我有一个Silverlight应用程序,当我点击“运行”时,Internet Explorer启动但没有显示任何内容。我在左下角得到一个错误图标,当我单击它时,会出现以下错误信息。

网页错误详细信息

用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) 时间戳: 2009年11月25日 00:11:41 UTC

消息: Silverlight 应用程序中未处理的错误

代码: 2103

类别: InitializeError

消息: 应用程序无效或格式不正确: 请检查清单

行: 54 字符: 13 代码: 0 URI: http://localhost:50511/TestPage.html

为什么会出现这个错误?我该如何修复它? 我查看了一些资料,其他人似乎在重命名应用程序时也遇到了这个错误,但我没有这样做。
我已经创建了自定义样式,如果可能的话,这可能与此有关。
我没有进行任何编程,我只是拖动我的样式控件并链接到页面。

你是用 Blend 还是 Visual Studio? - AnthonyWJones
我可以使用两者,但我正在使用Microsoft Expression Blend 3。 - Lango
11个回答

33

我在一些情况下都遇到了这个错误。请检查属性中的启动对象是否正确(有没有更改名称空间?)。确保将Silverlight项目显式添加为Web项目的依赖项目,因为默认情况下不会添加。

在Web项目属性中重新添加Silverlight项目到Silverlight应用程序中。确保App.xamlx:Class与代码后台的命名空间和类名匹配。嗯,我想这些通常是解决问题的技巧。

希望这可以帮到你。


感谢您的回复,Nathan。解决方案是在Blend中创建的,因此所有项目都设置正确,并且所有代码都是动态生成的。我查看了命名空间中的代码,一切似乎都正确。我没有重命名项目。 - Lango
5
这解决了我的问题 - 我已经重命名了应用程序,但没有在项目属性中更改启动对象。 - Mike Chamberlain
Dood - 可能不是 OP 的解决方案,但却完美地解决了我的问题。我改变了命名空间,那就是根本原因。非常感谢! - Brian Warshaw

8

如果有人需要帮助,我分享一下我的经验:

我曾经为了解决这个错误问题而苦恼了很长时间。一切似乎都是正确的。

.xap文件就是一个.zip文件,因此可以在部署后手动更改ClientConfig中的信息(只需解压文件然后重新归档即可)。我一直在修改WCF终结点信息,然后重新压缩文件。但是,我没有意识到我一直在压缩文件夹,这意味着zip文件中有一个文件夹,而不是该文件夹的内容位于zip的根目录中。

这是一个愚蠢的错误,但从客户端的角度来看,.xap文件似乎没有问题。我唯一收到的错误是2103错误。将文件移动到zip的根目录中解决了我的问题。


7
我在部署现有的Silverlight应用程序到新环境或重新安装的开发计算机时,遇到了这个问题几次。
当您安装IIS时,请确保启用了“静态内容”功能(在“常见Http功能”下),以便您可以在IIS管理器的根目录中看到MIME类型功能。类型“.XAP”应设置为“application/x-silverlight”。
这为我解决了问题。
感谢:http://keremozen.com/2012/10/18/solution-alternatives-to-invalid-or-malformed-application-check-manifest-error/

4

当我从项目中删除在App.xaml中引用的资源字典时,出现了这个错误。Visual Studio编译解决方案没有问题,并没有提示任何错误。

当我记得从App.xaml中删除该行时,一切正常运行。


3
以下是我完美地完成的事情:
(1)检查属性中的启动对象是否正确。
(2)确保将Silverlight项目明确添加为Web项目的依赖项目,这不是默认设置。右键单击“解决方案”(而不是单个项目)>属性>项目依赖项>选择“项目”下的Web项目和“Depends on”下的Silverlight Client项目>应用>确定。
(3)在Web项目的属性中重新添加Silverlight项目到Silverlight应用程序中。右键单击Web项目>属性>Silverlight应用程序>单击“添加”并在项目下选择Silverlight客户端项目。 :thumbsup:

2

检查确保Web服务器上安装了所有的先决条件。我为此苦苦挣扎了4个多小时。网络上的每篇帖子都谈到了更改命名空间,但我并没有这样做。最终,我决定在另一台Web服务器上尝试我的应用程序,问题就解决了。

感谢所有发布他们的修复方法的人,但如果所有其他方法都失败了,请尝试另一台计算机或检查您的先决条件。


1
我们在Wcf查询服务更改后遇到了问题。我们向该Wcf服务添加了重载方法。就像这样
    [OperationContract]
    int test(Guid id);

    [OperationContract]
    int test(Guid id, int id2);

当运行应用程序时,它给了我们一个错误。当我们删除其中一个方法时,它完美地运行。把它放回去,错误也随之而来。重命名其中一个解决了这个问题。
因此,在Wcf中进行重载时要非常谨慎。

1
这里有另一个问题,我发现BasedOn样式的顺序似乎很重要。
以下内容将导致WSOD错误码2103。
<Style x:Key="Style2" TargetType="TextBlock" BasedOn="{StaticResource Style1}" />
<Style x:Key="Style1" TargetType="TextBlock" />

但这个不会。
<Style x:Key="Style1" TargetType="TextBlock" />
<Style x:Key="Style2" TargetType="TextBlock" BasedOn="{StaticResource Style1}" />

花了我很长时间才找到这个。看起来这实际上更像是XAML解释器的工作问题,但是很容易解决。

1

当我尝试在一个“Sketch”样式对象上进行object->Edit Style-> Edit A Copy操作时,出现了错误。我将新样式放入了一个新资源中。

当我删除这些样式后,错误消失了。然后我从头开始重新制作了我想要的样式,而不是编辑副本,这样就没有出现错误了。


1

尽管这是一篇旧帖子,但同样的问题却耗费了我几个小时的时间。上述提供的解决方案对我并没有起作用。

通过将所有外部引用程序集的Copy Local = True设置为解决了我的问题。

最初,Visual Studio会将所有程序集的Copy Local设置为True,但随后项目将开始从本地复制的程序集(bin\debug)中引用。为了使其引用公共位置,我将Copy Local设置为False,因此出现了这个问题。

希望这能节省你们中的某些人的时间...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接