Silverlight C++ XRPack 版本不兼容&资源编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Silverlight C++ XRPack 版本不兼容&资源编译相关的知识,希望对你有一定的参考价值。

使用:Silverlight C++
在为了解决错误 :0XC00CEE2B 时在网上查找到不同的 XRPack 的兼容性有问题,如下链接:
https://social.msdn.microsoft.com/Forums/en-US/c28d5513-984e-4c2f-bd02-fa59b8ddb517/embedded-silverlight-on-wec7-fails-to-start-with-hresult-of-0xc00cee2b?forum=winembnatapp
不同版本的 XRPack 生成的 *.baml 和 *.Compressed 不能通用
XRPack version 7.00.437:只生成了 *.baml
XRPack version 7.00.2825:生成了 *.baml 和 *.Compressed
当使用 XRPack version 7.00.437 生成的 *.baml 时,LoadResourceDictionary() 失败。错误信息如下代码所示:

 1 HRESULT App::InitializeComponent()  
 2 {  
 3     RXamlSource appXaml(GetHInstance(), IDR_FRONT_LINK_UI_APP);  
 4     HRESULT hr = m_pApplication->LoadResourceDictionary(&appXaml,NULL);  
 5     if(WC_E_XMLCHARACTER == hr)     // Error Code: 0XC00CEE2B  
 6     {  
 7         printf("0x%x: illegal xml character",hr);  
 8     }  
 9     return hr;  
10 } // InitializeComponent  

将 XRPack 的版本更换为:XRPack version 7.00.2825:后就能生成了 *.baml 和 *.Compressed,且没有上述 0XC00CEE2B 的出错。

如果将调试生成的目录中的文件全部删除,再次编译时会出现如下错误:

1>.\Front_Link_UIGenerated.rc2(8) : error RC2135 : file not found: ..\..\OutPut\exe\Front_Link_UI\App.Compressed  
1>.\Front_Link_UIGenerated.rc2(9) : error RC2135 : file not found: ..\..\OutPut\exe\Front_Link_UI\MainPage.Compressed  
1>.\Front_Link_UIGenerated.rc2(10) : error RC2135 : file not found: ..\..\OutPut\exe\Front_Link_UI\Page_Link_001.Compressed  

App.baml/App.Compressed,MainPage.baml/MainPage.Compressed,Page_Link_001.baml/Page_Link_001.Compressed 中后缀为 *.baml 的文件生成了,但后缀为 *.Compressed 的没有生成。
解决方法:
将 Front_Link_UIGenerated.h 和 Front_Link_UIGenerated.rc2 文件删除。
再次编译,可以看到如下编译 LOG:

1>Xaml: e:\Work\T9\MainProcess\T9_Debug\CODE\CODE_UI\BlendProject\Front_Link\Front_Link_UI\App.xaml  
1>Baml: e:\Work\T9\MainProcess\T9_Debug\CODE\CODE_UI\OutPut\exe\Front_Link_UI\App.baml  
1>Compile Xaml SUCCEEDED (5.2%)  
1>Xaml: e:\Work\T9\MainProcess\T9_Debug\CODE\CODE_UI\BlendProject\Front_Link\Front_Link_UI\MainPage.xaml  
1>Baml: e:\Work\T9\MainProcess\T9_Debug\CODE\CODE_UI\OutPut\exe\Front_Link_UI\MainPage.baml  
1>Compile Xaml SUCCEEDED (26.4%)  
1>Xaml: e:\Work\T9\MainProcess\T9_Debug\CODE\CODE_UI\BlendProject\Front_Link\Front_Link_UI\Page_Link_001.xaml  
1>Baml: e:\Work\T9\MainProcess\T9_Debug\CODE\CODE_UI\OutPut\exe\Front_Link_UI\Page_Link_001.baml  
1>Compile Xaml SUCCEEDED (-36.0%)  

在 Blend 中修改了页面后,是需要导入到 VS2008 的。导入方法:
先在“解决方案资源管理器”中选中要更新的项目,点击菜单“工具”,依次选择:Windows Embedded Silverlight Tools -> Update Silverlight for windows Embedded Project...

以上是关于Silverlight C++ XRPack 版本不兼容&资源编译的主要内容,如果未能解决你的问题,请参考以下文章

Silverlight 客户端可以与 C++ 服务器通信吗?

在c#silverlight中调用c++ clr dll

如何安装Silverlight Tools 4

Sharepoint 2010 和 Silverlight Web 部件 SL 版本

Silverlight 设计器加载错误

Chrome浏览器V43版本号不支持silverlight 5.0的解决的方法