PDA

View Full Version : Add additional Supported_OS in manifest



dbeckstrom
08-22-2014, 09:10 AM
When building my install file, SetupBuilder automatically includes a manifest embedded into the file. That's great, but when going through MiPR testing I've found I need to add an additional SupportedOS to the manifest.

I don't see in the Script Editor where the manifest is created or how it can be modified.

Basically, I just need the manifest to include an additional line in the SupportedOS section.

<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}">

Is there any way this can be done in the script?

Thanks for any help.

linder
08-22-2014, 09:19 AM
Hello,

SetupBuilder 8.1 already supports the Windows 8.1 "compatibility ID".

In SB V8.1 this ID is automatically embedded for you. SetupBuilder generates Vista, Windows 7, Windows 8 and Windows 8.1 aware setups.

Does this help?

Friedrich

dbeckstrom
08-27-2014, 02:00 PM
Friedrich,

Thanks so much for your reply. I believe the problem is that testing targets Microsoft Server 2012 R2 and that id is not included in the manifest.

That's why I was wondering how I could add an additional line.

Thanks again!
Darcy

linder
08-28-2014, 01:09 AM
Hi Darcy,

The manifest tells the Windows operating system that an application (in this case the setup.exe runtime) has been designed and tested with a specific operating system in mind. Basically, you're telling Windows "Yes, I'm aware of Windows 8.1 and 2012 R2, etc.". So just "adding" an ID is simply not enough. The (runtime) system has to know what to do with the "new" OS.

But SetupBuilder 8.1 already includes all the required manifest IDs for Windows 8.1 and Microsoft Server 2012 R2 compatibility. Just compile the project and the V8.1 compiler handles it all for you. No need to add any additional line to the manifest ;)

Friedrich

dbeckstrom
09-04-2014, 12:08 PM
Here is the log that displays the test that is failing. The executable that is created through Visual Studio 2013 passes the test, but the installer created through SB does not. Any ideas?

================================================== ====================
Log generated by Microsoft Platform Ready Test Tool for Windows Server 2012 R2 - Version 4.5.5100 | Signed: Thursday, October 24, 2013
================================================== ====================
Test date: 09/04/2014 15:44:16
Tested on: Windows Azure Hypervisor
Test for: Windows Server 2012 R2
================================================== ====================
Test case/Verification: BP-A5.3 - Verify all application’s installers and executables contain supported OS in manifest
================================================== ====================
A failure here means that the application’s installers or executables do not target
the current platform in their manifest.

supportedOS tags in manifest should have this format:

<application>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"></supportedOS>
</application>
================================================== ====================
09/04/2014 15:44:20 :: Fail. At least one installer or installed executable manifest contained a supportedOS that does not target the current platform.
----------------------------------------------------------------------
The following executables failed the validation:

=== Executables with manifest that don't support the latest OS ===

C:\Users\User1\Downloads\setup.exe
C:\Program Files (x86)\MealTracker\Uninst_MT.exe


----------------------------------------------------------------------
“MSI packages” do not apply for the validation:

=== No MSI Packages found ===


================================================== ====================
Test case/Verification: BP-A5.3 - Verify all application’s installers and executables contain supported OS in manifest
09/04/2014 15:44:20 End of Log.
================================================== ====================

linder
09-05-2014, 02:07 AM
Hi Darcy,


supportedOS tags in manifest should have this format:

<application>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"></supportedOS>
</application>


Then perhaps you have not used a Windows 8.x-aware SetupBuilder version to create the setup/uninstall?

See attached HexEdit screenshot from an executable compiled with SetupBuilder 8.1. It automatically supports the {1f676c76-80e1-4239-95bb-83d0f6d0da78} ID.

Friedrich

linder
09-05-2014, 03:45 AM
BTW, if you are interested, send your "Uninst_MT.exe" to support [at] lindersoft [dot] com and we'll use HexEdit to check the executable for you.

Friedrich

dbeckstrom
09-05-2014, 08:15 AM
I did a file - "Save As" and re-saved the script as a .sb8 file and the resulting build now passes the target OS test. It had been saved originally as a .sb6 file and just re-saved anytime changes were made.

I'm not sure why just saving "as" with the new extension would resolve the issue, but it appears that it did.

Thank you for you help and patience with this issue. We've used SetupBuilder for years and it has always provided the features and support we've needed.

linder
09-05-2014, 08:40 AM
Hi Darcy,

Even if you compile a .sb5 project, the SetupBuilder 8.1 compiler can only generate Windows 8.1-aware applications (always embeds the IDs for Vista, Windows 7, Windows 8 and Windows 8.1).

Perhaps you double-clicked the .sb6 project and accidentally compiled with the old SB6 compiler? Or your automated build system picked the old SB6 environment. If you still have that old "Uninst_MT.exe" then I can tell you which compiler version generated it.

But I am glad that it's working fine now. Thanks so much for your kind words!

Friedrich