What files and directories are absolutely needed when using the toolkit to do a deployment?
There is approx. 21 meg. in the template. I would like to make the template files needed as small as possible with as few files as possible. For example, I do not think the ADMX directory is needed when installing an application. I would think the Frontend directory would not be needed. Are the directories and files that are duplicated needed when doing a deployment? (Under ...\PSAppDeployToolkit\strings, Assets, config, strings)
Thank You.
Unsure how you are going about your packaging, but if you use the Creating a new deployment Instructions:
You start with a much leaner template, you can then distribute this folder structure with your customised Invoke-AppDeployToolkit.ps1 script (replacing the existing blank / 'template' version of the script) and you can drop your installer / config files in the Files folder and it's ready to go.
This does not contain the ADMX directory or some of the other files for a clean deployment
I hope that helps?
I followed those instructions. I used the commandlet (New-ADTTemplate -Destination C:\Temp -Name "PSAppDeployToolkitv4") to create a v4 template and I unzipped the v4 template zip.( * PSAppDeployToolkit_Template_v4.zip - PSADT v4 native deployment template) The directory structures were exactly the same except for the hidden file, PSGetModuleInfo.xml, when using the commandlet.
While you could strip the ADMX and Frontend folder out of the module's directory, you'd be saving mere kilobytes and thr resulting module could never create a new template via New-ADTTemplate again.
The weight of the module is within the lib folder and all of that is crucial to its operation. Having fancy new dialogs requires UI and rendering libraries. Removing the requirement for ServiceUI requires a client/server architecture, necessitating extra binaries.
My advice is to just deal with it as it's 2026 and 21MB is completely inconsequential. You don't need to fit the toolkit on a floppy disk.
I think you misunderstood my instructions, there are two possible ways to build a deployment folder structure:
- Use the Module - (This is what I was suggesting)
- Using the downloadable templates - This includes some of the extra files (including the ADMX files) which you do not want / are not necessary, hence why I didn't suggest using it.
I suggest you just use the commandlet (New-ADTTemplate -Destination C:\Temp -Name "PSAppDeployToolkitv4") to create a v4 template
It is not about the size. It is about the large number of small files that have to be moved around. It takes longer to move many small files than it does one larger one. Zipping with Intune prep tool helps, but if files are not needed for the actual deployment, I would rather not have them in the package. (My opinion.)(I figured it out.)
I've been able to run without the extra languages in \Strings\ folder.
That said, v4.2 seems to have fewer files and folders.
The upcoming 4.2.0 release ingests the default config and string files into the .psm1 file itself to stop people from trying to delete things we don't want them to, and to avoid confusion around why there's seemingly two sets of config/strings files.
The upcoming release will have an opt folder in the module. Deleting this will be supported for those really wanting to trim down the module's size, but we're talking around 200KB or so, which isn't really worth it.
We're reviewing the UI library we're using as well and if we make a change there, it might mean less DLL files which will make the project tighter overall. There's no promises there though, but let's see.
Hi @RorySRut, I'd like to invite you to test out this build and share your thoughts: Remove duplicated line feed in `DeploymentSession` ctor output. · PSAppDeployToolkit/PSAppDeployToolkit@ef3e80f · GitHub
The file count is halved and the uncompressed size is only 12.5MB. If you never intend to launch the product in PowerShell 7, you can remove the net8.0 folder to save ~3.8MB or so. You can also delete the entire opt folder of you never intend to use the New-ADTTemplate function to create a new template.
It's worth mentioning that you can centralise the module by having it installed/available on your devices also. This also then allows its use in detection and proactive remediation scripts, etc.