PowerToys Make Life Easier: Package Mapper & Answer File Diff

Posted By J.T. Kimbell
Program Manager

Welcome to the new Approaching Embedded Intelligently blog! I’m J.T. Kimbell, a Program Manager in Windows Embedded, and I’ll be providing you with tips, insights, and cool projects related to the Windows Embedded Standard line of products. While at work I spend most of my time focused on enabling the servicing of Windows Embedded Standard 8 devices and the Embedded Core, but I’ll dabble in drivers and other areas from time-to-time. I’ve been on the Windows Embedded team for nearly 3 years after graduating from the University of Iowa. When not working I enjoy sports of all kind (but primarily football, soccer, and basketball), reading books, playing video & board games, and spending quality time with my wife and young daughter.

This first post is about some PowerToys made for Windows Embedded Standard 7, but I deserve none of the credit for making it happen. Package Mapper and Answer File Diff were made by Saravanan Somasundaram, a Software Development Engineering on the Windows Embedded team.

PowerToy is kind of a funny name, isn’t it? I’m still not completely sure why we call them that, but Wikipedia tells me that they are programs released by Microsoft that are “not under technical support because they do not undergo the same rigorous testing that the operating system components do.” These applications are officially unsupported, but they represent tools that we used internally to do our work and we wanted our customers to be able to reap the benefits of these tools as well.

We created the Package Mapper and Answer File Diff tools to help us create application templates. Package Mapper helps speed up development time, and Answer File Diff is very useful when testing a template. Because these tools were quite helpful to us, we felt that they would also help community members analyzing dependencies to their applications and we decided to share them as PowerToys.

Package Mapper

While performing dependency analysis on an application, one of the more tedious and confusing steps can be trying to figure out exactly what Windows Embedded Standard 7 packages are represented by the list of binaries that were gathered. Package Mapper helps solve that problem by easily mapping a flat list of binaries to a list of packages. You can then save the list to an answer file and import it into Image Configuration Editor (ICE).

Before getting started with Package Mapper, you must meet a few pre-requisites:

  1. Net Framework 3.5 must be installed on the computer
  2. ICE must be installed on the computer
  3. The EmbeddedDSI.dll COM DLL must be registered
    • Choose Start, type cmd, right-click the cmd application and then select Run as administrator.
    • In the Command Prompt window that opens, run the following command:
      regsvr32 [PATH_TO_ICE]\EmbeddedDSI.dll
    • On most systems, you can replace [PATH_TO_ICE] with C:\Program Files\Windows Embedded Standard 7\Tools\Image Configuration Editor

Now that the pre-requisites have been met, you can start using Package Mapper by downloading it from here. I suggest that you also download the sample config file and documentation from that link as well.

You can use the sample config file in Package Mapper as a starting point or you can create a text file, but in either case, the file must contain the information Package Mapper needs to run: the list of binaries (InputFile), the path to your Distribution Share (DSPath), and the path to your ICE Installation (ICEPath). Here’s an example of a config file based on the file I use on my work computer:

[InputFile]=C:\Users\user1\Desktop\binaries.CSV

[DSPath]=C:\Program Files (x86)\Windows Embedded Standard 7\DS

[ICEPath]=C:\Program Files (x86)\Windows Embedded Standard 7\Tools\Image Configuration Editor

Package Mapper in action

In Package Mapper, browse to your config file and click Map Package to run package mapper and get a list of packages to save out to an answer file. To learn more, check out the Package Mapper documentation.

Answer File Diff

Answer File Diff isn’t directly related to dependency analysis like Package Mapper, but was just as useful for us as we compared and validated our various templates or answer files. For instance, when we made the application template for an application like Silverlight or Adobe Reader, we wanted to ensure that it was a subset of the Thin Client device template (found in the Templates/IBW folder of your Distribution Share). It’s also very useful to quickly compare two configurations you’ve created to understand how they are different.

There are no pre-requisites to using Answer File Diff, so you can just download the executable and user manual and get started comparing your answer files or templates.

Just select two different answer files, and then click the Compare button in the upper left to get an easy-to-understand comparison of the two files. Drivers, features, and languages are all color-coded and described, and you can even do comparisons based on the package state or how it was brought into your answer file.

Comparing two answer files

So there you have it. What do you think of the new blog? Do you have any comments on these PowerToys? Is there anything you want us to write about? I’d love to hear from you and engage with you in the comments.