How to sign your .cab files


(see highlighted section below for the specifics of creating a Test certificate) 


 


·         Generate a .cab (using Cab SDK): http://support.microsoft.com/kb/310618


o   Simple command line approach:              


§  make sure desired mshc file exists (copy to) in same folder as makecab.exe (simplified command line for this example)


§  cd into directory where makecab.exe lives, example: C:\cabsdk\BIN


§  issue command line: makecab.exe <mshc file name> <desired cab file name>


 


·         Sign a .cab (using locally generated certificate - only used for local signed cab testing):


o   For local testing, create your own certificate from your local machine (requires the tool to create the certificate to be installed as part of Windows SDK):


§  http://msdn.microsoft.com/en-us/windows/bb980924.aspx


§  Install Windows SDK


o   Create local certificate:


§  Makecert.exe -sk myNewKey -r -n "cn=Test Sign Cert,ou=certificates,O=Tst" -ss my myNew.cer


§  certutil.exe -f -addstore personal myNew.cer


o   Sign the .cab:


§  Signtool.exe sign /i "<whatever your cert name is, the "cn=" name in above line>" <content name>.cab


 


·         Signing with a certificate obtained from Certificate Authority:


o   http://msdn.microsoft.com/en-us/library/aa387764(VS.85).aspx


o   Make sure you have a cert to use for the signing and the private key


o   At a command prompt, cd into directory where signtool.exe lives


o   signtool.exe signwizard


o   In the signwizard UI:


§  Select cab file


§  Select custom option - this will enable you to select your cert

Comments (3)

  1. sooraj says:

    Hi,

    I tried putting .msgc and .msha files in a cab file, signed it and deployed it using install shield. Then i tried to run the below command from command prompt:

    HelpLibraryManagerLauncher.exe /product "VS" /version "100" /locale en-us /brandingPackage MESFoundationClassReference.mshc /sourceMedia MESFoundationClassReference.msha /silent

    It doesnt work. It ways executed succesfully in command prompt. Please help me in identifying the issue with this command or any step I miss.

  2. Hello Sooraj – Only the .mshc file should go in the .cab. The .msha file should remain a separate file.

    Additionally, it is required that the .msha file specifically be named "HelpContentSetup.msha" – no other file name will be recognized.

    Then your HelpLibManager parameters should look like:

    HelpLibManager.exe /product VS /version 100 /locale en-us /sourceMedia <path to .msha>helpcontentsetup.msha /silent

    The .msha file will specifiy the name of your .cab file – the name of the .cab file should also match the name of the .mshc file inside it.

  3. sassy says:

    Excuese me plz any one tell mi how to use cabinet file in IBS s/w using normal code or web based code

Skip to main content