积极答复者
WinRT 组件中的资源文件读取

问题
答案
-
Hi,
抱歉回复的比较迟,这个问题我研究了一下发现。
在WinRT Component中如果添加一个Resource的文件,比如Embedded Resource的图片进去,是没有办法在其他的工程中得到这个图片的原因在于,WinRT中不支持GetManifestResourceStreaam方法。
但是在ClassLibrary使用Embedded Resource的话是可以得到这个资源的,可以使用以下代码(这个是读一个Embedded resource的xml):
var s = Assembly.Load(new AssemblyName("PortableClassLibrary")).GetManifestResourceStream(@"PortableClassLibrary.files.default.xml"); StreamReader sr = new StreamReader(ts); string fileContentPortable = sr.ReadToEnd(); MessageDialog msgPortable = new MessageDialog("From PortableClassLibrary: " + fileContentPortable); await msgPortable.ShowAsync();
WinRT 组件和 ClassLibrary 中设置比如图片等资源的Build Action为Content的话那么编译出来的话会被单独打包,这个你需要将所有的东西复制到引用资源的工程中才行,之后用ms-appx可以得到,不过这样的话跟你直接将资源添加到工程已经没什么区别了。Aaron Xue [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 1096 2012年11月10日 13:42
全部回复
-
Hi,
抱歉回复的比较迟,这个问题我研究了一下发现。
在WinRT Component中如果添加一个Resource的文件,比如Embedded Resource的图片进去,是没有办法在其他的工程中得到这个图片的原因在于,WinRT中不支持GetManifestResourceStreaam方法。
但是在ClassLibrary使用Embedded Resource的话是可以得到这个资源的,可以使用以下代码(这个是读一个Embedded resource的xml):
var s = Assembly.Load(new AssemblyName("PortableClassLibrary")).GetManifestResourceStream(@"PortableClassLibrary.files.default.xml"); StreamReader sr = new StreamReader(ts); string fileContentPortable = sr.ReadToEnd(); MessageDialog msgPortable = new MessageDialog("From PortableClassLibrary: " + fileContentPortable); await msgPortable.ShowAsync();
WinRT 组件和 ClassLibrary 中设置比如图片等资源的Build Action为Content的话那么编译出来的话会被单独打包,这个你需要将所有的东西复制到引用资源的工程中才行,之后用ms-appx可以得到,不过这样的话跟你直接将资源添加到工程已经没什么区别了。Aaron Xue [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 1096 2012年11月10日 13:42