使用 MakeCAB.exe创建CAB文件

来源:互联网 发布:仙侠学院2 网络电影 编辑:程序博客网 时间:2024/04/26 10:55
MakeCAB.exe 是 Windows 2000 或更高版本中随附的工具。要使用 MakeCAB.exe 来创建 .cab 文件,请执行以下步骤: 

为 makecab.exe 创建一个定向文件,然后以 .ddf 扩展名保存该文件。下面的示例定向文件(名为 sample.ddf)为一个简单的 Web 部件库项目创建了一个 .cab 文件: 
 
;*** Sample Source Code MakeCAB Directive file example
;
.OPTION EXPLICIT ; Generate errors 
.Set CabinetNameTemplate=SampleCab.cab 
.set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory
.Set CompressionType=MSZIP;** All files are compressed in cabinet files
.Set UniqueFiles="OFF"
.Set Cabinet=on
.Set DiskDirectory1=SAMPLECAB.CAB
manifest.xml
WebPart1.dwp
WebPartLibrary1.dll
;*** <the end>
 
将您希望包含在 .cab 文件中的所有文件复制到创建 .ddf 文件的目录中。在本例中,这些文件是 Manifest.xml 文件、WebPart1.dwp 文件和 WebPartLibrary1.dll 文件。 
 
打开一个命令提示符,转到包含 .ddf 文件以及您希望包含在 .cab 文件中的文件的目录,然后运行以下命令: 
 
Makecab.exe /F sample.ddf
 

MakeCAB.exe 创建一个名为 SAMPLECAB.CAB 的目录,然后在该目录中创建一个名为 SampleCab.cab 的 .cab 文件,其中包含 Sample.ddf 定向文件中列出的三个文件。

有关 MakeCAB.exe 的详细信息,请下载 Microsoft Cabinet Software Development Kit。

用本地化资源创建 CAB 文件
Visual Studio  不支持创建包含内部目录的 .cab 文件。但是,本地化的 Web 部件可能需要一个包含内部目录的 .cab 文件。因此,您必须使用一个  MakeCAB.exe 之类的工具或其他第三方 CAB 实用工具来部署本地化的 Web 部件。

下面的示例描述如何为一个名为 SampleWebPartLibrary 的英语 Web 部件项目(该项目同时还提供德语本地化资源)创建 .cab 文件。本例中的 .cab 文件名为 Sample.cab,它必须包含下列文件: 

SampleWebPartLibrary.dll 
 
Help.htm 
 
Image1.gif 
 
WebPart1.dwp 
 
de-DE/Help.htm 
 
de-DE/Image1.gif 
 
de-DE/WebPart1.dwp 
 

要为该示例 Web 部件项目创建 .cab 文件,请执行以下步骤: 

1.
 创建适当的 Manifest.xml 文件。下面的示例显示 Sample.cab 文件的 Manifest.xml 文件: 

<?xml version="1.0" encoding="utf-8" ?>

<WebPartManifest 
  xmlns="::URL::http://schemas.microsoft.com/WebPart/v2/Manifest">
   <Assemblies>
      <Assembly FileName="SampleWebPartLibrary.dll">
         <ClassResources>
            <ClassResource FileName="image1.gif"/>
            <ClassResource FileName="help.htm"/>
            <ClassResource FileName="de-DE/image1.gif"/>
            <ClassResource FileName="de-DE/help.htm"/>
         </ClassResources>
         <SafeControls>
            <SafeControl Namespace="SampleWebPartLibrary" 
              TypeName="*"/>
         </SafeControls>
      </Assembly>
   </Assemblies>      
   <DwpFiles>
      <DwpFile FileName="WebPart1.dwp"/>
      <DwpFile FileName="de-DE/WebPart1.dwp"/>
   </DwpFiles>
</WebPartManifest>

 
2.
 创建适当的 Makecab.exe 定向文件。下面的示例显示 Sample.cab 文件的定向文件: 

;*** Sample Source Code MakeCAB Directive file example
;
.OPTION EXPLICIT ; Generate errors 
.Set CabinetNameTemplate=Sample.cab    
.set DiskDirectoryTemplate=CDROM ; All cabinets go in a single 
  directory
.Set CompressionType=MSZIP ;** All files are compressed in cabinet 
  files
.Set UniqueFiles="OFF"
.Set Cabinet=on
.Set DiskDirectory1=SAMPLE.CAB
manifest.xml
WebPart1.dwp
SampleWebPartLibrary.dll
Image1.gif
help.htm
Set DestinationDir=de-DE
de-DE/WebPart1.dwp
de-DE/image1.gif
de-DE/help.htm
;*** <the end>

 
3.
 将您希望包含在 .cab 文件中的所有文件复制到创建 .ddf 文件的目录中,并将所有的本地化资源复制到相应的子目录中。下面的示例显示 Sample.cab 文件的目录结构: 

/Directory with directive file
              Sample.ddf
              Manifest.xml
              SampleWebPartLibrary.dll
              WebPart1.dwp
              Image1.gif
              Help.htm
              /de-DE
                        WebPart1.dwp
                        Image1.gif
                        Help.htm

 
4.
 打开一个命令提示符,转到包含 .ddf 文件以及您希望包含在 .cab 文件中的文件的目录,然后运行以下命令,以便在 Sample.cab 文件中创建一个子目录,并为部署准备 Sample.cab 文件: 

Makecab.exe /F sample.ddf