none
关于WES7系统精简 RRS feed

  • 问题

  • 由于设备资源有限同时为了保证能够稳定运行,所以非常有必要对系统进行一个精简。为此我进行了下面这个试验

    1、使用VS2008  用C#基于.NET 3.5编写了一个控制台应用程序,这个应用程序只有一句话 , System.Console.WriteLine("Hello,Wes7!");
    2、生成release版本WES7_TestDemo_Console.exe
    3、使用Dependncy Waller分析该exe文件,显示运行依赖MSCOREE.dll
    4、通过ICE,Edit|Find发现该dll的Path值为.NET Framework 2.0 Client Profile
    5、将.NET Framework 2.0 Client Profile填加到应答文件中
    6、点击ICE菜单Validate|Validate Only,ICE提示有错误,根据ICE的提示逐一解决这些错误的过程中,会勾选很多功能包,
    比如:Browsers/Internet Explorer 8、Diagnostics/Common Diagnostic Tools

    问题:
    1、为了解决ICE提示的错误,所勾选的一些功能包我不并清楚它真正的作用是什么,但就我的程序而言,IE8肯定是我不需要的,而它为什么会被ICE提示错误,而解决这个错误就必须勾选这个IE8,有什么办法可以解决这个问题
    2、既然我的程序运行只依赖于MSCOREE.dll,那我可不可以只安装WES7的核心,然后把开发机上的MSCOREE.dll拷贝到WES7被测试程序的目录中,这样是否可以正常使用

    【这个问题我已经实验过了,行不通】

    请高手赐教,谢谢!

    2012年7月10日 7:16

答案

  • 你好,根据你的描述,主要涉及的问题是添加第三方应用程序时该选用哪些组件,并且如何选择最少的组件来满足尺寸的需要。Dependency Walker一般用来做静态的依赖性分析,其中它也有个功能可以进行动态的检查,所以你需要确认是否只是解决了静态的动态分析而忽视了动态的依赖性关系。对此,我还有个建议的工具,Process Monitor,这个工具可以用来检测程序在安装,运行过程中的活动,通过对这些记录的分析来确认依赖文件。对于你提到的IE8的问题,组件之间的依赖关系会引起你提到的错误,为何你不用IE8却需要该组件,这是因为你添加的组件的正常运行过程中静态或动态的引用了IE8组件中的某一个或某几个文件,这样,IE8整个组件都会被加入进来,这与目前的ICE工具的依赖性检查的粒度有关。所以在这个过程中,你可以通过上述的依赖性分析来确认是否IE8组件需要完整的加入,还是只需要添加几个文件。通过这样的方式来精简尺寸,可以做到稳定性高,但是同样需要对工具的熟练掌握。


    WES JDP Team

    2012年7月16日 7:18
    版主