I'm not sure what steps you've already completed so here's the entire
process I followed. In my case I was using MS VS 2005, obviously some
steps my have to be addapted depending on the enviroment you're
working under.

First you have to create a key if you don't have one already:

makecert -n "CN=<CompanyName>" -sv <PVKFile.pvk> <CertificateFile.cer>
-len 2048 -r

pvk2pfx.exe -pvk <PVKFile.pvk> -spc <CertificateFile.cer> -pfx
<PFXFile.pfx> [-po Password]

pktextract <CertificateFile.cer>

The password, if any, will be the one you enter for the first step.
The last step generates the public key token you'll be needing later.

You'll need a manifest file, you can write it yourself or take the
easy way out by compiling the project once after going to project
properties and selecting General->Manifest. Set the Assembly Identity
to:

<DllName>, type=win32, version=<VersionNumber>,
processorArchitecture=X86, publicKeyToken=<PublicKeyToken>

DllName is the name without the extension, VersionNumber is of the
form 1.2.3.4, and the PublicKeyToken is the one you got from
pktextract. Make sure you have "Embed Manidest" under "Input and
Output" set to no for this first time.

Depending on the compiler you're using you may need to edit the
resulting manifest file and add the line

<file name="dllFile.dll"
hash="0000000000000000000000000000000000000000" hashalg="SHA1"/>

before any dependency elements. the file name is the final name of the
file, with the extension. The value of the hash bit is unimportant
because it will be overwritten later. You can save the resulting
manifest file and reuse it for the following steps multiple times as
long as none of the fundamental values change (file name, version
number, encryption key, etc)

You then run

mt.exe -manifest <dllFile.dll.manifest> -hashupdate -makecdfs

which updates the hash value and creates a cdf ffile. Next you run:

makecat -v <dllFile.dll.manifest.cdf>

to create the cat file. FInally you run

signtool sign /f <PFXFile.pfx> [/p password] /t
http://timestamp.verisign.com/scripts/timestamp.dll <dllFile.dll.cat>

to sign  the catalog file using the key.

Now the wix bit, which I had a lot of trouble with and sent a couple
messages to the list about without resulting in much progress. Once I
figured out what the missiing bits were however it turned out to be
pretty simple:

<Component Id="DllComponent" Guid="MYGUID-#############">
        <File Id="ManFile" Name="dllFile.man" LongName="dllFile.dll.manifest"
         src="Path\dllFile.dll.manifest" Vital="yes" DiskId="1">
        </File>
        <File Id="CatFile" Name="dllFile.cat" LongName="dllFile.dll.cat"
         src="Path\dllFile.dll.cat" Vital="yes" DiskId="1">
        </File>
        <File Id="DllFile" Name="dllFile.dll" LongName="dllFile.dll"
KeyPath="yes"
         src="Path\dllFile.dll" Vital="yes" DiskId="1"
Assembly="win32" AssemblyManifest="ManFile">
        </File>
</Component>

And of course finally once you've installed your new assembly you need
to reference it in any other projects that will be using it by going
to Project Options->Linker->Manifest File->Additional Manifest
Dependencies and adding

"type='win32' name='<DllName>' version='<VersionNumber>'
processorArchitecture='X86' publicKeyToken='<PublicKeyToken>'
language='*'"

There are a couple pages that halped me figure this stuff out if you
want to take a look at them:

http://msdn2.microsoft.com/en-us/library/aa376307.aspx
http://msdn2.microsoft.com/en-us/library/ms235512.aspx
and especially:
http://msdn2.microsoft.com/en-gb/library/aa374228.aspx


On 1/25/07, Frank Büttner <[EMAIL PROTECTED]> wrote:
> How can I integrate an .cat file in my merge module.
> This file is needed for my side-by-side assembly.
> Simple use the File Tag will get the error:
> error LGHT0104 : Not a valid manifest file;
> How can I do this??
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
>
>

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to