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() 失败。错误信息如下代码所示:
HRESULT App::InitializeComponent()
{
	RXamlSource appXaml(GetHInstance(), IDR_FRONT_LINK_UI_APP);
	HRESULT hr = m_pApplication->LoadResourceDictionary(&appXaml,NULL);
	if(WC_E_XMLCHARACTER == hr)		// Error Code: 0XC00CEE2B
	{
		printf("0x%x: illegal xml character",hr);
	}
	return hr;
} // 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 版本不兼容&资源编译)