Home Logo logo
  • The OneDeploy Platform
    • Build vs. Image: The Deployment Revolution
    • Scalability and Performance
    • Remote Sites: Deployment without border
    • A Unified Deployment Platform
  • About OneDeploy
  • For MSP’s
  • News and Events
    • Unleashing the Latest Version at Microsoft Ignite 2025
    • Why we killed the image
    • How a London Stadium Recovered from the CrowdStrike Outage in Time for a Concert
  • Support and Resources
    • Videos
    • Documentation
  • Contact
Book a Demo
  • The OneDeploy Platform
    • Build vs. Image: The Deployment Revolution
    • Scalability and Performance
    • Remote Sites: Deployment without border
    • A Unified Deployment Platform
  • About OneDeploy
  • For MSP’s
  • News and Events
    • Unleashing the Latest Version at Microsoft Ignite 2025
    • Why we killed the image
    • How a London Stadium Recovered from the CrowdStrike Outage in Time for a Concert
  • Support and Resources
    • Videos
    • Documentation
  • Contact

Introduction

3
  • What is OneDeploy?
  • Concepts and Planning
  • Getting Started – Technical Onboarding

Using OneDeploy

43
  • Config
    • Windows Autopilot – Getting Started
    • Windows Autopilot Integration – OneDeploy Steps
    • Windows Autopilot Integration – Microsoft Entra
    • Organisations – Summary
    • My Tenant
  • Deployment
    • Builds
    • Devices
    • Deployments
    • Builds
      • Build General Settings
      • Builds Overview
      • Configuring the Operating System(s) for a Build
      • Applying Quality Checks to a Build
      • Configuring the Out of Box Experience
      • Domain and Accounts
      • Assigning Software Packages to a Build
  • Library
    • Library Overview
    • Drivers
      • DriverApps
      • Drivers Overview
      • Drivers Summary View
      • Adding Drivers
      • Driver Properties
    • Operating Systems
      • Adding and Managing Operating Systems
    • Software Packages
      • Software Packaging Best Practices
      • Defining Installation Steps for a Software Package
      • Software Package Steps – PowerShell
      • Software Packages Overview
      • Software Package Steps – Registry (Bulk)
      • Software Package Steps – Registry
      • Software Package Steps – Copy
      • Software Package Steps – MSI
      • Software Package Steps – WinGet
      • Software Package Steps – Execute
      • Software Package Steps – CMD
  • Pre-Deployment
    • Windows PE
    • ADK Versions
    • Boot Profiles
    • Deployment Sources
    • Pre-Deployment Overview
  • Definitions
    • Secrets
    • Software
    • Definitions Overview
    • Device Models
    • Vendors

Reference

5
  • Technical Overview – Windows Autopilot
  • Test formatting page
  • How To: Update a build from 24H2 to 25H2
  • How To: Upgrade Your Windows ADK Version
  • LAN-Based vs USB Deployment Sources
View Categories
  • Home
  • Docs
  • Using OneDeploy
  • Library
  • Software Packages
  • Software Packaging Best Practices

Software Packaging Best Practices

2 min read

Software Packaging Best Practices

Avoiding reboots during software installation

Reboots should be avoided during software install steps.

Best practice is to:

  • Use installer switches that suppress reboots
  • Prevent installers from forcing a restart
  • Allow the build process to control when reboots occur

Unexpected reboots during application installation can interrupt the build and lead to incomplete or failed deployments.

Network and external resource considerations

Some application installs may attempt to access:

  • The internet
  • Internal servers
  • File shares
  • External repositories or license servers

These dependencies can reduce install reliability if they are not carefully considered.

When crafting steps, ask the following:

  • Will the device have internet access at the time this step runs?
  • If accessing a file share or server, will authentication be available?
  • Are credentials required to reach the external resource?
  • What happens if the resource is unavailable?

Where possible:

  • Bundle all required files within the Software Package
  • Avoid relying on live downloads during deployment
  • Avoid steps that depend on interactive authentication

The more self-contained the Software Package is, the more reliable the installation will be.

User context during installation

Software install steps run using a local administrator account created for the build process.

Important considerations:

  • This account is temporary and is deleted at the end of the build
  • Anything installed into C:\Users\<ProfileFolder> for this account will not be available to end users
  • Registry changes written to HKCU apply only to this temporary account

If settings need to apply to all users or future users:

  • Avoid installing to user-specific profile paths
  • As part of an automated build, you should never manually create folders inside C:\Users for future users
  • Prefer system-wide install locations
  • Use registry locations that apply at the machine level where appropriate

Other best practices for reliable installs

When designing steps, keep the following in mind:

  • Test installers outside of OneDeploy using the same silent switches
  • Keep steps focused and simple
  • Avoid unnecessary scripts or logic where possible
  • Log output where supported to aid troubleshooting
  • Ensure prerequisite software is installed before dependent applications
  • Be consistent in how steps are structured across software packages

Common pitfalls to avoid

  • Using installers that require user interaction
  • Allowing installers to reboot the device
  • Relying on internet access without verifying connectivity
  • Writing critical settings to user-specific locations
  • Assuming credentials or network access will be available
  • Combining too many actions into a single step instead of separating them

Carefully designed steps result in faster, more reliable builds and fewer deployment issues.

Testing installation steps before deployment

Testing software installation steps outside of a full build can save a significant amount of time and frustration.

Rather than discovering issues late in a build process, it is strongly recommended to validate each step manually before adding it to a Software Package.

Manual testing approach

A practical and effective approach is to:

  • Run installer commands manually from a command prompt or PowerShell on a test machine (or even better, a VM you can revert to a previous checkpoint/snapshot)
  • Use the exact same silent switches planned for automation
  • Execute steps in the same order they will run during deployment

This simulates what OneDeploy will do during an automated build, without needing to wait for a full OS deployment to complete.

Benefits of manual testing

Manual testing helps to:

  • Catch typos in file paths or command-line switches
  • Identify installers that are not truly silent
  • Detect unexpected prompts or dialogs
  • Discover installers that force or request reboots
  • Validate prerequisite ordering between steps

Finding these issues early avoids failed builds that may only surface problems 20–30 minutes into deployment.

Recommended testing workflow

Before adding steps to a Software Package:

  1. Test each installer or script manually
  2. Confirm it completes silently and without reboot
  3. Verify the expected outcome (files, services, registry entries)
  4. Only then add the step into the Steps tab

This approach results in faster iteration, more predictable installs, and far more reliable automated builds.

Related articles

  • Software Packages overview
  • Creating EXE install steps
  • Creating MSI install steps
  • Creating script-based install steps
Updated on February 10, 2026

What are your Feelings

Software Package Steps – CMDDefining Installation Steps for a Software Package
  • hello@onedeploy.com
  • UK:+44 1462 514624/ US:+1 415 907 7314

Copyright 2026 OneDeploy Ltd Privacy Policy Cookie Policy