locked
Test Case 13 for Vista Certification RRS feed

  • Question

  • I'm looking at Test Case 13 which says:

    Verify application's installer contains an embedded manifest.

    (Only applies to applications that are using a non-self-containing bootstapper or chainer to install the app)

    Anyone know what exactly a "non-self-containing bootstrapper or chainer" means?  I am familiar with what a bootstrapper is, but I'm so sure sure about the context here.  Can anyone enlighten me?

     

    Monday, January 15, 2007 6:45 PM

Answers

  • If your installation is an setup exe it needs to be a bootstrapper or chainer.

    Bootstappers are an exe that will install pre-reqs and then call your msi. The msi maybe external to the bootstrapper exe or it may be embedded in the bootstrapper. If embedded in the bootstapper, the msi is extracted to a temp folder location and then installed.

    Chainer is similar to bootstrapper, it an exe that extracts all the MSIs required. Then it calls the primary MSI which will chain the other MSIs together.

    The "non-self containing" means the bootstrapper is external. An example of a containing bootstrapper is it's possible for an MSI to contain the bootstrapper and another MSI. Therefore the bootstrapper is contained. A contained bootstrapper exe is not tested for a manifest and a non-self contained bootstrapper is tested for a manifest. The common approach I see is to have a non-self containing bootstrapper.

    Let me know if you have more questions.

    Tuesday, January 16, 2007 10:36 PM

All replies

  • If your installation is an setup exe it needs to be a bootstrapper or chainer.

    Bootstappers are an exe that will install pre-reqs and then call your msi. The msi maybe external to the bootstrapper exe or it may be embedded in the bootstrapper. If embedded in the bootstapper, the msi is extracted to a temp folder location and then installed.

    Chainer is similar to bootstrapper, it an exe that extracts all the MSIs required. Then it calls the primary MSI which will chain the other MSIs together.

    The "non-self containing" means the bootstrapper is external. An example of a containing bootstrapper is it's possible for an MSI to contain the bootstrapper and another MSI. Therefore the bootstrapper is contained. A contained bootstrapper exe is not tested for a manifest and a non-self contained bootstrapper is tested for a manifest. The common approach I see is to have a non-self containing bootstrapper.

    Let me know if you have more questions.

    Tuesday, January 16, 2007 10:36 PM
  • So if I understand this requirement correctly we have to embed a manifest in our setup.exe created through build of a Visual Studio setup project.

    Is this correct?

    I have tried to do this as a post build step:

    "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\mt.exe" -manifest "$(ProjectDir)setup.exe.manifest"  –outputresource:"$(ProjectDir)$(Configuration)\setup.exe;1"

    However, I get the following error:

    mt.exe : command line error c10100a8: No manifest outputs were specified to store the final manifest.

    Does anyone spot any errors in the mt.exe call?

    Thanks,

    Markus

    Tuesday, January 23, 2007 10:08 AM
  •  

    Did you find some way to get rid of this error?

     

    I get the same  error message as you.

    Monday, February 19, 2007 4:14 PM
  • No.

    We decided to skip the exe and ship only the msi.

    Monday, February 19, 2007 4:30 PM
  • I get the same error when adding the manifest with MT.exe running under Vista (business), non admin mode, UAC enabled.  Version of MT.EXE is 6.0.4071.0, exact error message is as follows:

    mt.exe:command line error c10100a8:No manifest outputs were specified to store the final manifest.
    Use the /? option for help on usage and samples.

    If I run as a standard user on XP, the command runs fine.  Command line used:
    mt -manifest test.manifest outputresource:VersionUpdate.exe;#1

    VersionUpdate.exe is a .NET 2.0 command line program.
    Using Visual Studio SP1 + Vista patches.

    I think this is a problem that you (Microsoft) need to fix.



    Friday, February 23, 2007 4:08 PM
  • Dear Friedrich B

     

    May you please tell me how do you do that?

    Tuesday, February 27, 2007 7:06 AM
  • I got the same error. The reason is quite simple the second minus is not a minus! I guess that we copied the text form the same site or something.

    Use "-outputresource" instead of "outputresource".

     

    Smile Søren

    Thursday, May 31, 2007 1:53 PM
  • Thanks for pointing the solution out. That dash before outputresource is wrong. Two points worth attention:

    1) This problem is common. The project my company is working on also have this problem. It's not a coincident. I believe that line was generated by Visual Studio.

    2) I am the first person in my company who faced this problem. The reason is that if one uses English as the OS default language, he/she won't have the problem, even if the wrong dash is used. Only if the user's system OS uses a multibyte language, like Chinese or Korean, the difference of two dashes will take effect.
    Monday, December 3, 2007 11:53 PM
  • I just had this same problem too, though I'm running all US / English.  There is no way I typed in the wrong kind of hyphen, but had copied it from a project post-build event window. 

    Thursday, January 17, 2008 10:03 PM
  • That dash problem occurs when you copy the command from

    the MSDN help web site as I just did!

     

    http://msdn2.microsoft.com/en-us/library/bb756929.aspx

     

     

     

    Wednesday, January 30, 2008 12:27 PM
  • I just encountered the dash problem. The command worked fine on my machine, because I usually like to type it out (explorer other options etc.), but I also copied and emailed for testing on another machine! Searched all over the internet for the problem. Thanks for this post.

    Wednesday, May 26, 2010 12:06 PM
  • I'm looking at Test Case 13 which says:

    Verify application's installer contains an embedded manifest.

    (Only applies to applications that are using a non-self-containing bootstapper or chainer to install the app)

    Anyone know what exactly a "non-self-containing bootstrapper or chainer" means?  I am familiar with what a bootstrapper is, but I'm so sure sure about the context here.  Can anyone enlighten me?

     


    Friday, May 28, 2010 2:16 PM
  • If your installation is an setup exe it needs to be a bootstrapper or chainer.

    Bootstappers are an exe that will install pre-reqs and then call your msi. The msi maybe external to the bootstrapper exe or it may be embedded in the bootstrapper. If embedded in the bootstapper, the msi is extracted to a temp folder location and then installed.

    Chainer is similar to bootstrapper, it an exe that extracts all the MSIs required. Then it calls the primary MSI which will chain the other MSIs together.

    The "non-self containing" means the bootstrapper is external. An example of a containing bootstrapper is it's possible for an MSI to contain the bootstrapper and another MSI. Therefore the bootstrapper is contained. A contained bootstrapper exe is not tested for a manifest and a non-self contained bootstrapper is tested for a manifest. The common approach I see is to have a non-self containing bootstrapper.

    Let me know if you have more questions.


    Friday, May 28, 2010 2:16 PM
  • If your installation is an setup exe it needs to be a bootstrapper or chainer.

    Bootstappers are an exe that will install pre-reqs and then call your msi. The msi maybe external to the bootstrapper exe or it may be embedded in the bootstrapper. If embedded in the bootstapper, the msi is extracted to a temp folder location and then installed.

    Chainer is similar to bootstrapper, it an exe that extracts all the MSIs required. Then it calls the primary MSI which will chain the other MSIs together.

    The "non-self containing" means the bootstrapper is external. An example of a containing bootstrapper is it's possible for an MSI to contain the bootstrapper and another MSI. Therefore the bootstrapper is contained. A contained bootstrapper exe is not tested for a manifest and a non-self contained bootstrapper is tested for a manifest. The common approach I see is to have a non-self containing bootstrapper.

    Let me know if you have more questions.



    Friday, May 28, 2010 2:17 PM
  • If your installation is an setup exe it needs to be a bootstrapper or chainer.

    Bootstappers are an exe that will install pre-reqs and then call your msi. The msi maybe external to the bootstrapper exe or it may be embedded in the bootstrapper. If embedded in the bootstapper, the msi is extracted to a temp folder location and then installed.

    Chainer is similar to bootstrapper, it an exe that extracts all the MSIs required. Then it calls the primary MSI which will chain the other MSIs together.

    The "non-self containing" means the bootstrapper is external. An example of a containing bootstrapper is it's possible for an MSI to contain the bootstrapper and another MSI. Therefore the bootstrapper is contained. A contained bootstrapper exe is not tested for a manifest and a non-self contained bootstrapper is tested for a manifest. The common approach I see is to have a non-self containing bootstrapper.

    Let me know if you have more questions.


    Friday, May 28, 2010 2:17 PM
  • So if I understand this requirement correctly we have to embed a manifest in our setup.exe created through build of a Visual Studio setup project.

    Is this correct?

    I have tried to do this as a post build step:

    "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\mt.exe" -manifest "$(ProjectDir)setup.exe.manifest"  –outputresource:"$(ProjectDir)$(Configuration)\setup.exe;1"

    However, I get the following error:

    mt.exe : command line error c10100a8: No manifest outputs were specified to store the final manifest.

    Does anyone spot any errors in the mt.exe call?

    Thanks,

    Markus


    Friday, May 28, 2010 2:18 PM
  •  

    Did you find some way to get rid of this error?

     

    I get the same  error message as you.


    Friday, May 28, 2010 2:19 PM
  • No.

    We decided to skip the exe and ship only the msi.


    Friday, May 28, 2010 2:19 PM
  • I get the same error when adding the manifest with MT.exe running under Vista (business), non admin mode, UAC enabled.  Version of MT.EXE is 6.0.4071.0, exact error message is as follows:

    mt.exe:command line error c10100a8:No manifest outputs were specified to store the final manifest.
    Use the /? option for help on usage and samples.

    If I run as a standard user on XP, the command runs fine.  Command line used:
    mt -manifest test.manifest outputresource:VersionUpdate.exe;#1

    VersionUpdate.exe is a .NET 2.0 command line program.
    Using Visual Studio SP1 + Vista patches.

    I think this is a problem that you (Microsoft) need to fix.




    Friday, May 28, 2010 2:19 PM
  • Dear Friedrich B

     

    May you please tell me how do you do that?


    Friday, May 28, 2010 2:20 PM
  • Dear Friedrich B

     

    May you please tell me how do you do that?



    Friday, May 28, 2010 2:20 PM
  • I got the same error. The reason is quite simple the second minus is not a minus! I guess that we copied the text form the same site or something.

    Use "-outputresource" instead of "outputresource".

     

    Smile Søren


    Friday, May 28, 2010 2:21 PM
  • Thanks for pointing the solution out. That dash before outputresource is wrong. Two points worth attention:

    1) This problem is common. The project my company is working on also have this problem. It's not a coincident. I believe that line was generated by Visual Studio.

    2) I am the first person in my company who faced this problem. The reason is that if one uses English as the OS default language, he/she won't have the problem, even if the wrong dash is used. Only if the user's system OS uses a multibyte language, like Chinese or Korean, the difference of two dashes will take effect.

    Friday, May 28, 2010 2:21 PM
  • I just had this same problem too, though I'm running all US / English.  There is no way I typed in the wrong kind of hyphen, but had copied it from a project post-build event window. 


    Friday, May 28, 2010 2:22 PM