在system32
目录中,我看到一个.OCX
文件,其中包含相应的.OCA
文件。
我原以为.OCA
文件只能由Visual Basic使用。因此,它们是否对程序执行不必要并且可以删除?
如果不需要,为什么首先在.OCA
文件夹中会出现system32
?
答案 0 :(得分:19)
.OCA
个文件用作相应.OCX
文件的扩展类型库信息的缓存。
如果删除VB识别和使用的控件的.OCA
文件,VB将在您加载需要控件的项目时重新创建.OCA
文件。娱乐过程需要一点时间,但不会受到惩罚。
上次审核时间:1996年4月4日
文章编号:Q149429
摘要对于Visual Basic使用的每个自定义控件文件(.OCX), 有一个相同文件名的伴随.OCA文件。例如, GRAPH16.OCX附带一个名为GRAPH16.OCA的.OCA文件。一个.OCA file是一个二进制文件,既可以作为扩展类型库 文件和自定义控件文件的缓存。
更多信息
类型库是另一个文件或组件 包含OLE自动化标准描述的文件 对象,属性和方法。实际的工作类型库 Visual Basic中使用的自定义控件是该类型的组合 控件本身的库和提供的附加属性 通过包装控件的框架。
控件的某些属性由框架提供 还有一些是由控制本身组成的。以编程方式,来自的属性 框架和控件都显示为控件的属性。
为了显示这些属性,Visual Basic会创建一个 控件加载到工具箱中时的扩展类型库。 因为读取控件的类型库并创建的过程 扩展类型库很耗时,Visual Basic缓存 将类型库信息扩展为OCA文件。
如果删除了Visual Basic识别的控件的OCA文件, 加载项目时,Visual Basic将重新创建.OCA文件 需要控制。这个重新创建过程伴随着时间 罚。
(http://support.microsoft.com/kb/149429)
因此,在部署应用程序时不要担心包含它们。
答案 1 :(得分:2)
很抱歉复活僵尸线程,但我想总结以确保我理解这一点。 只有在程序编译期间才需要OCA文件,如果缺少,VB将创建它所需要的内容,因此丢失的所有内容都是编译时的时间。除非你有非常草率的编程和另一个自制的DLL或ocx需要一个特定的oca。 如果产品附带了oca,则应该能够安全删除它。
答案 2 :(得分:1)
不,它们不是必须执行的,但它们是程序正常运行所必需的(如果程序首先需要该文件)。
答案 3 :(得分:1)
他们永远不需要使用已完成的程序进行部署即可运行。
答案 4 :(得分:1)
这可能是一个愚蠢的尝试回答,但您可以简单地重命名该文件,看看该应用程序是否退出工作。如果是这样,那些文件是必要的。
DNA科学大致相同:答案 5 :(得分:0)
回复:不,它们不是执行该文件所必需的,但它们对于程序正常运行是必需的(如果该程序首先需要该文件)。
由于执行和运行具有相同的含义-您在说的是: 它不是必需的,但要正常运行? 或交替 它不需要执行即可,但它可以正常执行?
我怀疑* .OCA文件不是使用VB编译程序所必需的,如果在加载项目时不存在* .OCA文件,则VB将自动创建任何丢失的OCA文件以加快将来的加载速度或在VB中编译操作。
我刚刚删除了系统中的每个OCA文件(当我使用克隆的虚拟机执行此操作时,我是个勇敢的人)。 然后,我重新启动并运行了我的软件,在整个系统上没有任何OCA文件的情况下,它运行良好。现在,下一次加载/编译程序可能会花费一些时间,因为vb会重新生成OCA文件,但是我使用的i7配备16Gb RAM和SSD,所以谁在乎!