积极答复者
新手上路:关于整个程序架构?

问题
答案
-
我犯了个错误,给了你错误的答案。
我仔细看了下文档,文档上是这么说的:http://msdn.microsoft.com/zh-cn/library/aa970915.aspx
在将媒体与应用程序一起分发时,不能将媒体文件用作项目资源。 在项目文件中,必须将媒体类型改设为 Content,并将 Copy To Output Directory 设置为Preserve Newest 或 Always。
所以,我们不能把媒体文件作为资源封装在程序集发布后,用Pack URI引用的。而且,WPF 的MediaElement还不支持Stream值作为source。
很遗憾,你的答案可能只能不封装你的媒体文件了。
Bob Bao [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.
- 已标记为答案 Jie BaoModerator 2011年5月18日 14:57
全部回复
-
创建一种只包含资源的的程序集,我们叫做卫星程序集Satellite Assembly, 一般的做法是如下:http://msdn.microsoft.com/zh-cn/library/21a15yht.aspx
而对于WPF程序也有简单的方法,你新建一个空的WPF Custom Library 项目,把里面的所有control删除,把你的资源添加到解决方案中,修改每个文件的属性,将BuildAction改成 Resource。这样,就会把你的所有文件编译到dll中去。然后在你要使用里面的资源的时候,可以根据 WPF Pack URI来建立Path去访问,据体 Pack URI参考下面的:http://msdn.microsoft.com/zh-cn/library/aa970069.aspx
Sincerely,
错误的!!
Bob Bao [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.
- 已标记为答案 diverduan 2011年5月5日 23:01
- 取消答案标记 Jie BaoModerator 2011年5月9日 10:00
- 已编辑 Jie BaoModerator 2011年5月9日 10:02
-
我犯了个错误,给了你错误的答案。
我仔细看了下文档,文档上是这么说的:http://msdn.microsoft.com/zh-cn/library/aa970915.aspx
在将媒体与应用程序一起分发时,不能将媒体文件用作项目资源。 在项目文件中,必须将媒体类型改设为 Content,并将 Copy To Output Directory 设置为Preserve Newest 或 Always。
所以,我们不能把媒体文件作为资源封装在程序集发布后,用Pack URI引用的。而且,WPF 的MediaElement还不支持Stream值作为source。
很遗憾,你的答案可能只能不封装你的媒体文件了。
Bob Bao [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.
- 已标记为答案 Jie BaoModerator 2011年5月18日 14:57
-
程序文件的大小跟你的事迹物理内存没有多大关系,一个32位进程会有4GB的寻址空间,Windows默认保留2GB,还有2GB给进程使用。而如果是个64位进程的话,那就更多了,他的寻址空间在目前的所有应用程序来讲,是不可能用完的。所以不管你的文件会有多大,只要你的物理加虚拟内存足够而且是一个64位的程序,那么是不会有内存不足的情况的。
还有,你提及将文件Build Action设置为资源 (有两种,一种是Resource 资源,WPF中使用的,可以通过Pack Uri访问,我第一个被删除回复中有提及;还有一种是Embedded Resource 内嵌资源,它是最普通的.Net资源嵌入模式,可以通过ResoruceManager来管理访问)
不光你是哪一种,只要指定了之后,文件就会被嵌入到程序集中,你可以通过一些工具来验证,比如 Reflector 来检测,例如下图就可以显示出我再一个程序集中嵌入的几个图片资源:
或者一个自己做的工具:http://www.codeproject.com/KB/dotnet/asmex.aspx
通过工具,我们就可以知道,到底是什么占了空间,凭空说60M很难说服人的。你试试先, 有什么问题随时联系我们。
Sincerely,
Bob Bao [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.
-
因为视频文件已文件流形式存储,ilsky这个工具没有针对wmv格式进行解析,所以你只能看到他所存储的文件流类型。
Bob Bao [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.