orca是一款专业的msi编辑器。编程人员都不会错过的msi编辑器orca。作为Windows Installer SDK的一部分,它旨在提供对构成Windows Installer程序包的数据库表的完全访问权限。尽管Orca提供了对Windows Installer所有功能的强大访问权限,但它并不旨在替代功能齐全的程序程序包创建环境;该应用程序的适用对象如下,Windows Installer可以有效地安装和配置用户的产品和应用程序; Orca可用于创建和编辑Windows Installer数据库,其中包括安装数据库(.msi文件),合并模块msm文件),数据库补丁,数据库转换,验证模块(.cub文件)和补丁创建(.pcp文件)。 ;功能强大且实用,需要键入的用户可以下载体验
软件功能:
重要信息
Orca提供对原始数据库表和数据流的直接访问,它们一起定义了应用程序安装逻辑。
对于大多数编辑操作,Orca很少执行错误检查或不执行任何错误检查,并允许修改数据库中的逻辑不一致或错误。
使用Orca直接修改MSI或MST文件而不完全了解更改的潜在影响和副作用可能会导致MSI或MST文件无法正确执行。
尽管Orca允许您通过直接编辑或创建转换来修改软件包的各个方面,但是某些产品安装软件包仅适用于可能自定义的所有特定子集,
或仅针对特定于产品的自定义生成的转换工具。通过Orca定制以这种方式设计的软件包可能会导致意外或错误的行为。
安装说明:
1.用户只需单击此网站上提供的下载地址即可将应用程序下载到磁盘
2.打开数据包,解压缩数据文件,获取可以使用的程序文件。
正确地,
3.用户可以直接使用鼠标单击主程序以打开程序
软件特色:
A.数据库名称。
窗口标题中显示正在编辑的数据库的名称。
B.转换\补丁名称。
应用于当前数据库的转换时,补丁名称或补丁名称显示在窗口标题中。
C.菜单。
Orca菜单提供对所有Orca功能的访问。
D.工具栏。
工具栏提供对各种常用选项的快速访问。工具提示简要介绍了每个按钮的功能。
E.表列表窗口。
“列表”窗口显示数据库中所有表,由转换或补丁添加或删除的表以及数据库中不存在但验证错误或警告所必需的表的列表。
F.表错误指示器。
表列表窗口中的红色条表示包含验证错误或警告的表。
G.当前表指示器。
表列表中的蓝色或黄色背景表示当前选择的表。如果表格列表窗口处于活动状态并且表格具有焦点,则背景为黄色,否则背景为蓝色。当前选定表中的数据显示在表视图窗口中。所使用的颜色是可配置的,并且可能与此处指示的颜色不同。
H.表格指示器已被修改。
表列表窗口中的绿色条表示已由转换或补丁修改的表。
I.藏桌子。
验证所需的表但实际上不存在于数据库中的表由变色指示。选中后,视图窗格中将不会显示任何数据。
J.V验证窗格。
“验证”窗格列出了最近的验证运行错误,可用于快速更改表列表窗口和表视图窗口以指示特定验证错误的位置。
K.当前验证错误。
验证窗格中的所选行指示最近选择的验证错误。
L.状态栏。
状态栏提供有关Orca中当前选定对象的统计信息。
M.表格视图窗口。
表格视图窗口显示表格的内容。
N.添加行。
绿色框包围的线表示通过转换或补丁添加的线。
O.选定的行。
蓝色背景线表示当前选择的线。所使用的颜色是可配置的,并且可能与此处指示的颜色不同。
P.验证错误。
橙色或红色单元格表示存在验证错误的单元格。橙色文本表示验证警告,红色文本表示验证错误。
问:活动单元格。
活动单元格(具有输入焦点的单元格)以黄色背景表示。所使用的颜色是可配置的,并且可能与此处指示的颜色不同。
R.表计数。
状态栏的此部分指示数据库中的表数。
S.行数。
状态栏的此部分指示当前表中的行数。
T.列结构。
状态栏的此部分指示当前或最近选择的列的名称和类型。
使用说明:
应用程序导航
选择一个表
要选择一个表,请在左窗格中单击表名称,或者在表列表处于活动状态时使用光标键选择一个新表。 TAB按钮可用于在表格列表和表格视图之间切换活动窗口。
随着所选表的更改,表视图窗口中的视图将更改以反映当前所选表的内容。
一次只能选择一个表。
在单元格之间移动
要更改表中的焦点单元格,请使用光标键移动焦点指示器,或单击所需的单元格。
若要在不更改任何行的选择状态的情况下移动焦点单元格指示器,请在使用光标键移至新单元格的同时按住CTRL键。
选择线
要选择一行,请单击该行中的任何单元格,或使用光标键将焦点指示器移动到相关行。
要选择一系列行,请选择第一行。然后,按住Shift键并使用光标键来扩大或缩小所选行的范围,或者按住Shift键并单击要选择的范围中的最后一行。
若要选择一组连续的行,请选择第一行,然后在选择其他行时按住CTRL键。
排序表
以通过单击列的列标题以指示要用作排序基础的列来在Orca中对表进行排序。
数字列按升序排序,字符串列按升序排序。 Orca使用的字符串排序不支持语言环境设置。
通过从“工具”菜单中选择“选项...”,然后在“显示”选项卡中选择“表视图中区分大小写的排序”选项,可以更改排序操作的区分大小写。
无法根据二进制数据列对表进行排序。
查看十六进制数值
要以十六进制格式查看列中的值,请右键单击列中的任何单元格(或列标题本身),然后选择``以十六进制显示''。要再次以十进制形式查看列中的值,请右键单击列中的任何单元格(或列标题本身),然后选择``以十进制显示''。
跳到错误的位置
如果数据库中存在验证错误,请单击“问题窗格”中的行以立即跳转到错误位置。如果在“问题”窗格中选择了一行,则可以使用箭头键更改所选的错误。
一次只能选择一个错误。
显示和隐藏工具栏和窗格
要显示或隐藏工具栏,状态栏和“问题”窗格,请从“查看”菜单中选择“工具栏”,“状态栏”或“问题窗格”。隐藏问题窗格不会从窗格中删除任何数据。
确定Orca版本
要确定Orca的版本,请从“帮助”菜单中选择“关于”。
打开一个数据库
要在Orca中打开数据库,请在命令行上提供数据库名称:
Orca.exe <数据库文件>
您可以在启动Orca之后通过从“文件”菜单中选择“打开...”或将数据库文件拖到Orca窗口中来打开数据库。
您可以打开数据库以进行写访问或只读访问。如果打开的文件不允许写访问,则该文件将自动以只读方式打开。否则,可以通过在“打开”对话框中选择“只读”选项,以只读方式打开文件。
您可以使用相同的技术来打开和编辑合并模块,但是不能使用此方法来打开转换。也可以在Orca中编辑基于MSI数据库格式的其他类型的文件。例如,PCP文件(“修补程序创建属性”文件)和CUB文件(验证包)基于MSI数据库格式,并且可以在Orca中进行编辑。
使用补丁文件时,可以与其他数据库文件相同的方式编辑描述补丁的元数据。您可以查看产品补丁的实际更改,但不能使用Orca进行编辑。
更改数据库代码页
要更改数据库的代码页,请从菜单...中选择工具...和代码页。显示当前代码页。要更改代码页,请输入数字代码页ID,然后单击“确定”。
Orca验证数据库中的所有字符串都可以在新代码页中表示,并将数据库的代码页更改为新值。要跳过验证并将数据库强制到特定的代码页,请选择“强制更改而不进行验证”选项。如果将数据库强制到代码页,则Orca无法检测到数据库中无法在指定代码页中表示的字符串。这可能会导致安装包无法正常工作。
请注意,并非所有代码页值
适用于MSI。 Orca阻止数据库使用不能与MSI一起使用的代码页。
搜索数据
要搜索单元格中的数据,请从“编辑”菜单中选择“查找”,然后输入搜索字符串。 Orca从当前选定的表,行和单元格中搜索指定的数据(如果未选择表,则搜索数据库的开头)。
找到匹配的数据后,表列表和表视图窗口将自动切换以显示正确的单元格。
要指定单元格中数据的完全匹配,请选择“仅匹配整个单词”选项。如果未设置此选项,则Orca将标记包含搜索字符串的任何单元格,即使该单元格中还有其他数据也是如此。
Orca不会搜索数字单元或包含二进制数据的单元。
调整表格的结构
要修改现有表的模式,请在表列表中选择表,然后从“表”菜单中选择“调整模式...”,或右键单击该表并选择“调整表...”。
通过按“上移”或“下移”按钮选择一列并修改其位置,可以更改表中列的顺序。您可以通过选择“新建”按钮将新列添加到表中。您可以通过选择列并按“删除”按钮来删除现有列。
请注意,在删除列时,即使您在按OK之前创建了具有相同名称和架构的列,原始列及其值也被标记为要删除,并且无法检索。如果意外从表中删除了列,则应先取消模式编辑操作,然后再将更改保存到数据库中。
您可以通过在列列表中选择列并在“列模式”部分中更改列的名称或类型来更改列结构。修改包含数据行的现有表的架构时,如果表不为空,则不可能对表架构进行所有更改。例如,如果存在已经包含字符串值的行,则无法将列从字符串列更改为整数列。同样,如果表中的行包含“空”行,则当前可为空的列可能不会更改为禁用“空”值。
您可以通过增加或减少键列数来更改表中的主键数。该表必须至少具有一个主键列。从第一列开始,按列出的顺序为列分配主键,所有主键列必须放在非主键列之前。
请注意,您可以随时将主键列添加到表中。删除主键列,方法是删除整个列以减少表中键列的数量,或者更改表中列的顺序,以使主键列不再是主键列(如果有新键)可能会丢失,数据列不再足以保证行的唯一性。在这种情况下,Orca将检测到潜在的数据丢失并要求采取纠正措施。
选择“取消架构更改”以取消操作并将数据库表返回到其原始架构。
选择为冲突行生成新的主键,以修改每一行的主键值以确保唯一值。修改后的行会在表视图中标记出来,以供以后分析。
从每组中选择一行并丢弃多余的行,从每组冲突的行中选择一行,并丢弃在新表模式下不是唯一的行。
编辑数据库时的特殊注意事项
在Orca中编辑数据库时,需要记住一些事项。
数据库大小
与文件系统非常相似,MSI数据库中可能会出现碎片。重复编辑数据库时,数据库文件的大小将增加。要消除碎片并生成较小的MSI文件,请使用“另存为...”命令生成一个新的MSI文件。
嵌入式流媒体和存储
使用“另存为...”或“保存转换为...”命令保存数据库时,除非嵌入式二进制流(例如嵌入式文件文件)是数据的一部分,否则它们不会保存到新数据库中。行。嵌入式子存储(嵌套的安装文件)将永远不会保存在新数据库中。
语言和代码页问题
Orca可以用多种语言编辑数据库,但是系统必须支持所需的代码页。因此,在编辑某些包含本地化字符串的数据库时,在Windows 95,Windows 98和Windows Me系统上使用Orca可能会限制Orca的功能。
显示表数据时,Orca不会检测到所选字体何时不支持数据库中编码的字符。可以选择不支持数据库语言或字符集的字体
Orca将导致数据显示不正确。
当编辑数据库或导入数据文件时,Orca将不会检测到与数据库的当前代码页不兼容的字符串。输入或导入无法在当前数据库的代码页中表示的字符串可能会导致错误的程序包行为。
手表操作
Orca中的几个操作在整个表的级别上运行。这些操作通常会对正在编辑的数据库产生重大影响,因此应谨慎使用。
在架构数据库中添加表
要添加一个或多个表,请从“表”菜单中选择“添加表...”,或右键单击表列表中的任意位置,然后选择“添加表...”。
将出现一个对话框,其中包含可以添加到数据库的所有表的列表。数据库中已经存在的任何表都不会出现在列表中。可用的表集基于Orca使用的架构数据库。发行Orca版本时,默认架构数据库包含Windows Installer表的当前集合。您可以使用自定义模式文件。
通过在表名旁边的框中放置一个复选标记来选择要创建的表。您可以一次创建多个表。单击确定以创建表。
删除表格
要从数据库中删除表,请从表列表中选择表,然后从“表”菜单中选择“删除表...”,或右键单击表列表中的表,然后选择“删除表...”。 ”。
从数据库中删除该表后,该表中包含的所有数据均不可恢复。
出口表
要将一个或多个表导出为标准IDT文件格式的文本文件,请从“表”菜单中选择“导出表...”,或在表列表中右键单击该表,然后选择“”导出表.. ”。
出现“导出表”对话框时,通过在每个要导出的表旁边放置一个复选框来选择要导出的表。您可以通过单击“全选”按钮选择要导出的所有表,也可以通过单击“全部清除”按钮取消选择所有表。要反转表的选择状态,以便取消选择所有选中的表并选择所有未选中的表,请单击“反转”按钮。
要指定放置IDT文件的目录,请在“输出目录”文本框中输入路径。您可以通过单击“浏览...”按钮来浏览系统,以找到目录。
选择表格后,单击“确定”按钮以导出表格。每个表都将导出到指定目录中的IDT文件。如果表的二进制数据列中包含二进制数据,则该行中的二进制数据将被导出到指定路径的子目录中的二进制IBD文件。子目录从要导出的表的名称派生其名称,该表的IDT文件引用二进制数据文件。
重要说明:Orca将表导出到使用短文件名(8.3)命名约定命名的文件。如果某些所选表的前8个字符不是唯一的,则一个表中的数据可能会覆盖其他表中的数据文件。
导入表
Orca允许将表格从IDT文件导入当前数据库。要导入一个或多个IDT文件,请从“表”菜单中选择“导入表...”,或在表窗格中右键单击该表,然后从快捷菜单中选择“导入表...”。
选择导入文件
在“文件”对话框中,选择一个或多个IDT文件以导入到当前数据库中。可以选择多个IDT文件进行同步导入。为了获得最佳结果,导入的IDT文件的代码页必须与数据库的现有代码页兼容。如果代码页不兼容,则导入操作将失败。
要点:Orca不支持通过导入_ForceCodepage表来更改数据库代码页。
选择每个表的操作
一旦选择了要导入的文件集,Orca将评估每个IDT文件并构建要导入到当前数据库中的表的列表,以及每个表的默认导入操作。
每个表接受4种可能的操作:
进口
指定的表将完全导入数据库。当数据库尚未包含具有相同名称的现有表时,这是默认操作。
更换
指定的表将完全导入数据库,替换现有表。当数据库已经包含具有相同名称的现有表并且现有数据与要导入的数据之间存在冲突时,这是默认操作。指定的表将完全导入数据库并与现有表共存。当数据库已经包含一个具有相同名称的现有表时,这是默认操作,但是现有数据和要导入的数据之间没有冲突。
跳过
桌子
未导入数据库。
要更改对每个表执行的操作,请从列表中选择表名称,然后从表列表右侧的可用选项中为表选择所需的操作。由于数据库中现有的数据,将禁用特定表无法执行的操作。
重要:MSI根据IDT文件中编码的表名分析并导入文件。如果多个文件尝试导入到同一数据库表中,则表的结果状态不确定。
在导入操作期间导入其他IDT文件,然后选择其他文件进行导入。
表选择所需的操作后,单击“确定”以将表导入数据库。
创建自定义表
Orca可以创建不属于标准MSI数据库架构的自定义表。要添加自定义表格,请从“表格”菜单中选择“添加自定义表格...”,或右键单击表格列表中的任意位置,然后选择“添加自定义表格...”。
每个表必须至少具有一列和至少一个主键列。按下“新建”按钮以添加新列。这将生成一个具有默认名称和列类型的新列。 “删除”按钮将删除当前选择的列。您可以通过选择列并使用“上移”和“下移”按钮来调整列的顺序,以调整列在列表中的位置。
通过在列列表中选择一列并编辑架构值,可以更改列名称和架构。
请注意,不能配置Integer列的宽度。
要创建没有长度限制的字符串列,请为长度值输入0。
使用“主键”字段选择表中的主键数量。该表必须至少具有一个主键列。主键列必须位于任何非主键列之前。
请注意,当您修改列的顺序时,可以根据列顺序中的新位置将列从主键更改为非主键。
表格的结构
要修改现有表的模式,请在表列表中选择表,然后从“表”菜单中选择“调整模式...”,或右键单击该表并选择“调整表...”。
通过按“上移”或“下移”按钮选择一列并修改其位置,可以更改表中列的顺序。您可以通过选择“新建”按钮将新列添加到表中。您可以通过选择列并按“删除”按钮来删除现有列。
请注意,在删除列时,即使您在按OK之前创建了具有相同名称和架构的列,原始列及其值也被标记为要删除,并且无法检索。如果意外从表中删除了列,则应先取消模式编辑操作,然后再将更改保存到数据库中。
您可以通过在列列表中选择列并在“列模式”部分中更改列的名称或类型来更改列结构。修改包含数据行的现有表的架构时,如果表不为空,则不可能对表架构进行所有更改。例如,如果存在已经包含字符串值的行,则无法将列从字符串列更改为整数列。同样,如果表中的行包含“空”行,则当前可为空的列可能不会更改为禁用“空”值。
您可以通过增加或减少键列数来更改表中的主键数。该表必须至少具有一个主键列。从第一列开始,按列出的顺序为列分配主键,所有主键列必须放在非主键列之前。
请注意,您可以随时将主键列添加到表中。删除主键列,方法是删除整个列以减少表中键列的数量,或者更改表中列的顺序,以使主键列不再是主键列(如果有新键)可能会丢失,数据列不再足以保证行的唯一性。在这种情况下,Orca将检测到潜在的数据丢失并要求采取纠正措施。
选择“取消架构更改”以取消操作并将数据库表返回到其原始架构。
选择为冲突行生成新的主键,以修改每一行的主键值以确保唯一值。修改后的行会在表视图中标记出来,以供以后分析。
每组中选择一行并丢弃多余的行,从每组冲突的行中选择一行,并丢弃在新表模式下不是唯一的行。