Silverlight程序启动和项目迁移问题2010-12-10Kathleen Dollard是一位咨询顾问、作者、培训师和演讲者。她10年以来一 直是微软最有价值的专家。她回答了两个关于Silverlight产生的隐蔽的错误的 问题。读者问:我正在把一个Silverlight项目从Visual Studio 2008迁移到Visual Studio 2010,在编译中找不到“可编辑的”和“显示”属性。参考了 System.Data.Annotations.dll(系统.数据.注释动态链接库),我确实正确地使 用了声明。这是在一个连接Silverlight和服务器的文件中发生的并且仅发生在 服务器上。你知道发生了什么事情吗?Kathleen答:检查一下这个框架的目标版本,确定你的目标是正确的版本。虽然Visual Studio 2010能够针对早期版本的.net框架,但是,你可能会遇到一 些不匹配的编译。当你从Visual Studio 2008向Visual Studio 2010迁移的时候 ,Visual Studio不改变目标框架。对于Visual Studio版本和.net框架目标要谨慎。虽然你能够使用Visual Studio 2010把目标对准早期版本的.net框架,但是,在Visual Studio 2010中 打开一个项目会改变这个项目和汇编文件,因此,这个项目在Visual Studio 2008(或者早期版本的这个框架)中就不能打开。由于大多数机构不能同时升级所 有的程序员,这就意味着逐个项目地升级,而不是逐个人地升级。使用源控制, 因为人们很容易过早地把一个项目迁移到Visual Studio 2010。读者问:当我启动我的Silverlight应用程序的时候,我得到下图显示的错误 提示信息:“初始化错误信息:非法的或者错误的应用程序:检查清单。” 你 知道引起这个错误的原因是什么?

图1:Silverlight启动的神秘错误。Kathleen答:这个错误提示的最常见的原因是启动对象不正确,可能是因为 你改变了这个启动对象的命名空间或者重新命名了这个启动对象。你在 Silverlight标签或者项目属性对话框中设置这个启动项目。由于这个启动对象 组合框包含这个合法的目标,重置这个启动对象是绕过可能产生的任何打字错误 的一个最简便的方法。一个较小的可能性是用于部署的xap文件制作不正确或者已经损坏。虽然你可 以查询清单并且保证所有标记为编译组件的文件都存在,删除和重新创建你的 xap文件可能也有效。由于这个xap文件实际上是一个zip文件,因此,如果你重 新命名一份文件并且有一个.zip扩展名,你可以使用 Windows文件浏览器搜索这 个文件。