Deploying Your Custom Application

[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

Whether you are extending the Windows Home Server Console, or extending the Windows Home Server platform, you will need to deploy your custom application to the Windows Home Server computer. includes a supported method for deploying your custom application using Add-ins. Add-ins provide a structured and supported method of deploying applications to Windows Home Server.

Important

The final version of Windows Home Server will include the Windows Home Server Add-in feature. Add-ins provide a way for users to install MSI-based custom applications through the Windows Home Server Console. This feature is not present as of the Beta version of Windows Home Server.

What is a Home Server Add-in?

A Windows Home Server Add-in is a software package that can be installed on the Windows Home Server computer. Available Add-ins display in the Add-ins Settings tab of the Windows Home Server Console. When administrators on the Windows Home Server computer click the Settings button on the console, and then click Add-ins, they will see a list of available Add-ins under Available. They can then choose to install one of the available Add-ins. Add-ins can also be uninstalled from the Add-ins Settings tab.

For example, if you develop a home security application for the Windows Home Server, you can present your application for installation on a Windows Home Server through an Add-in. When you properly deploy your Add-in, it will appear in the list of available Add-ins that the end-user will see in the Add-ins Settings dialog. The user can then install your application by clicking on your Add-in and then clicking Install.

Creating a Home Server Add-in

To create an Add-in, you must first create an MSI file. The MSI should contain all the files it needs for installation within itself. MSIs that are created for Add-ins must be placed into the \\ServerName\Add-ins share, where ServerName is the name of the Windows Home Server. The Windows Home Server Console populates the list of available Add-ins with the MSI files that it finds in this folder.

The MSI file can be created using any tool that you choose, but it must satisfy the following requirements:

  • Use only MSI 3.1 features
  • Require no user input. Windows Home Server will force the MSI to run in BASIC mode, where only progress bars and error dialogs are shown and will suppress all other user interface dialogs.

Note

A Windows Installer XML (WIX) based MSI sample file is available in the topic, Windows Home Server Add-in WIX Example.

Additionally, the MSI file that you create for your Add-in should contain the following properties in order to be used as a Windows Home Server Add-in:

  • Manufacturer - states who created the Add-in.
  • ProductName - states the name of the Add-in.
  • ProductVersion - states the version of the Add-in.
  • WHS-AddIn - set to 1 to indicate that the Add-in is designed for Windows Home Server.

Deploying a Home Server Add-in

To deploy your Add-in, the MSI file that contains your software package must be copied to the \\ServerName\Add-ins share on the Windows Home Server computer. This can be accomplished programmatically through a setup routine that you create or manually by the end-user. To install the Add-in, the end-user must be an administrator on the Windows Home Server computer. After each installation or uninstallation of an Add-in, the Windows Home Server console must be restarted.

As an aid to troubleshooting installation issues, installing or uninstalling an Add-in writes information to the %qlogs%\Addition.log file. You can then use this log to find the cause of an installation error.

Detecting a Windows Home Server

When deploying your custom application, it may be necessary to verify that the system where you are installing your application is a Windows Home Server. You could then block installation of your application on computers that are not running Windows Home Server.

To detect if the computer is Windows Home Server, you will need to use the Win32 API GetVersionEx function. The GetVersionEx function returns an OSVERSIONINFOEX structure that contains information about the version of the operating system that is running on the computer.

For more information about using GetVersionEx, see the Microsoft Web site at https://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnaraskdr/html/askgui06042002.asp.

See Also

Concepts

Programming Tutorial
Extending the Windows Home Server Console
Extending the Windows Home Server Platform