解决 Silverlight 运行时 Invalid or malformed application: Check manifest
评论77次阅读2010.03.25 16:06; 作者:Felicia
Silverlight程序中,App.xaml中片段如下(使用了资源文件):
<Application.Resources>
<ResourceDictionary>
...
<res:StringLib x:Key="StringRes" />
</ResourceDictionary>
</Application.Resources>
<ResourceDictionary>
...
<res:StringLib x:Key="StringRes" />
</ResourceDictionary>
</Application.Resources>
在VS2008 SP1下编译通过,但是执行时报错:Invalid or malformed application: Check manifest
检查了manifest,并没有错误
仔细检查之后发现,VS生成的StringLib.Designer.cs中,StringLib类的构造函数是internal的,而App.xaml.cs中的App类并不和StringLib在同一命名空间中,所以调用构造函数的时候会出错。但是很诡异的是报了个Check manifest的错误,不知道是不是VS的bug。
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal StringLib() {
}
internal StringLib() {
}
解决方法就是手动把该构造函数改成public的,如下:
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public StringLib() {
}
public StringLib() {
}
这样再编译运行就不会有上面的错误了。
发表回复

- 评论 (0)
- 引用通告 (0)
发表评论 引用通告暂无评论.
暂无引用通告