Building M365 apps designed for Autopilot and beyond

Building M365 apps designed for Autopilot and beyond

Introduction

What will this blog post aim for?

  • Deploy M365 apps in a smart evergreen way. ✅
  • Minimize the bytes downloaded in your provisioning process. ✅
  • Reduce footprint on your devices. ✅
  • Smarter way to add core language + user specific language without touching a finger. ✅
  • Visio follows the version of your Microsoft 365 apps core version. ✅
  • Project follows the version of your Microsoft 365 apps core version. ✅
  • Make your company M365 apps version ready for Microsoft 365 Copilot. ✅

Initial thoughts

It will work fine for you if you are small company and you can live with the way it works. However I’ve seen a great deal of failure on larger customers while using this method, and I don’t like coincidence when I create solutions for my customers, so I researched further to find a good solution. Came across a fellow MVP’s guide on how he successfully deployed M365 apps here. If you want to know more about the built-in method and why not use it, I recommend reading that blog post first.

Design

How to build your M365 apps

Reducing the footprint:

Building M365 apps

<Configuration>
  <Add OfficeClientEdition="64" Channel="MonthlyEnterprise">
    <Product ID="O365ProPlusRetail">
      <Language ID="en-us" />
      <ExcludeApp ID="Groove" />
      <ExcludeApp ID="Lync" />
      <ExcludeApp ID="Bing" />
    </Product>
  </Add>
  <Property Name="SharedComputerLicensing" Value="0" />
  <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
  <Property Name="DeviceBasedLicensing" Value="0" />
  <Property Name="SCLCacheOverride" Value="0" />
  <Updates Enabled="TRUE" />
  <AppSettings>
    <User Key="software\microsoft\office\16.0\excel\options" Name="defaultformat" Value="51" Type="REG_DWORD" App="excel16" Id="L_SaveExcelfilesas" />
    <User Key="software\microsoft\office\16.0\powerpoint\options" Name="defaultformat" Value="27" Type="REG_DWORD" App="ppt16" Id="L_SavePowerPointfilesas" />
    <User Key="software\microsoft\office\16.0\word\options" Name="defaultformat" Value="" Type="REG_SZ" App="word16" Id="L_SaveWordfilesas" />
    <Setup Name="Company" Value="%your company%" />
  </AppSettings>
  <Display Level="None" AcceptEULA="TRUE" />
  <Logging Level="Standard" Path="%WinDir%\Logs\Software\M365AppsProPlus\" />
</Configuration>
<Configuration>
  <Remove>
    <Product ID="O365ProPlusRetail">
    </Product>
  </Remove>
  <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
  <Display Level="None" AcceptEULA="TRUE" />
</Configuration>
  • Development – For files you need to build the solution
  • Final – for your files that need to be in IntuneWIN.
  • Icon – for you icon that needs to go in while creating the Win32 app in Intune
  • Intune – for the intuneWin created file.
  • Media – for original media and docs like install commands and detection.

How to build Visio

<Configuration>
  <Add Version="MatchInstalled">
    <Product ID="VisioProRetail">
      <Language ID="MatchInstalled" TargetProduct="O365ProPlusRetail" />
    </Product>
  </Add>
  <Property Name="SharedComputerLicensing" Value="0" />
  <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
  <Property Name="DeviceBasedLicensing" Value="0" />
  <Property Name="SCLCacheOverride" Value="0" />
  <Updates Enabled="TRUE" />
  <Display Level="None" AcceptEULA="TRUE" />
  <Logging Level="Standard" Path="%WinDir%\Logs\Software\M365AppsProPlus\" />
</Configuration>
<Configuration>
  <Remove>
    <Product ID="VisioProRetail">
    </Product>
  </Remove>
  <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
  <Display Level="None" AcceptEULA="TRUE" />
</Configuration>

How to build Project

<Configuration>
  <Add Version="MatchInstalled">
    <Product ID="ProjectProRetail">
      <Language ID="MatchInstalled" TargetProduct="O365ProPlusRetail" />
    </Product>
  </Add>
  <Property Name="SharedComputerLicensing" Value="0" />
  <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
  <Property Name="DeviceBasedLicensing" Value="0" />
  <Property Name="SCLCacheOverride" Value="0" />
  <Updates Enabled="TRUE" />
  <Display Level="None" AcceptEULA="TRUE" />
  <Logging Level="Standard" Path="%WinDir%\Logs\Software\M365AppsProPlus\" />
</Configuration>
<Configuration>
  <Remove>
    <Product ID="ProjectProRetail">
    </Product>
  </Remove>
  <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
  <Display Level="None" AcceptEULA="TRUE" />
</Configuration>

How to build Language packs

<Configuration>
  <Add>
    <Product ID="LanguagePack">
      <Language ID="da-dk" />
    </Product>
  </Add>
  <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
  <Updates Enabled="TRUE" />
  <Display Level="None" AcceptEULA="TRUE" />
</Configuration>
<Configuration>
  <Remove>
    <Product ID="LanguagePack">
      <Language ID="da-dk" />
    </Product>
  </Remove>
  <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
  <Display Level="None" AcceptEULA="TRUE" />
</Configuration>

Assignment of all your apps

Assigning M365 apps core evergreen (the first package we built)

Assigning M365 Language packs evergreen

Assigning M365 Visio and Project

Result: A users view from Company Portal

Result: A view from add/remove programs

Summary

Table of Contents

Share this post
Search blog posts
Search
Authors
Modern Workplace consultant and a Microsoft MVP in Enterprise Mobility.
Modern Workplace consultant and a Microsoft MVP in Windows and Devices for IT.

Infrastructure architect with focus on Modern Workplace and Microsoft 365 security.

Cloud & security specialist with focus on Microsoft backend products and cloud technologies.

Cloud & security specialist with focus on Microsoft 365.

Cloud & Security Specialist, with a passion for all things Cybersecurity

Cloud and infrastructure security specialist with background in networking.

Infrastructure architect with focus on design, implementation, migration and consolidation.

Infrastructure consultant with focus on cloud solutions in Office365 and Azure.

follow us in feedly
Categories

Follow on SoMe