What's going on with v4?!

Hi There! My name’s Mitch and I’m one of the new developers on the PSAppDeployToolkit team. I can only apologise for joining the Discourse server just now, most of my time is spent in GitHub and the Discord server.

Firstly, an explanation on the file size. One of the primary development considerations for v4 was PowerShell 7 support to ensure our project remains portable and can be used in all supported PowerShell interpreters. As such, for our C# code, which comprises of support code and the new UI dialogs, we compile these for .NET Framework 4.6.2 and .NET 8.0, which is what PowerShell 7.4 is built against.

During the push to get PSAppDeployToolkit released just prior to our webinar with Patch My PC, we ran into an issue pushing the module to PSGallery as we were targeting net8.0-windows, without specifying a Windows SDK version. NuGet did not allow this, so I selected net8.0-windows10.0.17763, the lowest supported version of Windows 10 to address this, however it did drag in significant dependencies that .NET Core stopped including with .NET 6.0 and above.

Below is a screenshot from the commit tree where you can see these files came into the project immediately before the release commit:

As the .NET Framework 4.6.2 DLL files will load into PowerShell 7, while not as nice as native code, we’ve removed the .NET 8.0 files from the compiled output of the project and the released ZIP files are now 3x smaller. This can be independently verified by review this GitHub Action’s artifacts, and this will make it into the next point release.

Regarding the remainder of the project’s size, this is simply unavoidable. One of our targets for v4 was refreshed, modern dialogs that fit the design langage of Windows 11 (and to some extent, Windows 10). This is only achievable with support libraries, for which we use WPF UI, and its uncompressed DLL files equate to 5.35 MB of extra dependencies.

Regarding the other comments, I’ll agree that the documentation upon launch was insufficient and its something the team is working very hard on. Our core development team on v4 has been just four people, with one of those being largely unavailable due to a personal family matter. I’m proud of our v4 release and a lot of people have completed successful deployments with the latest toolkit, and that number will increase as the documentation and adoption improves.

Regarding the design of PSAppDeployToolkit v4, the project was always going to become a PowerShell module even before my involvement. The existing design of v3 was growing tired which is why development quietened down in recent years. The rewrite of the project as a PowerShell module will ensure the longevity of PSAppDeployToolkit for years to come and provide a solid foundational base for future development. There’s already people out there writing extension modules for PSAppDeployToolkit, with myself currently developing a WinGet module for people to add on and use if they wish.

Lastly, while I understand, appreciate, and agree with your expressed concerns, everything could have been said without the Albert Einstein/Leonardo da Vinci/Steve Jobs melodrama. All these issues are explainable, and I get this post may not have come to be if the documentation explained these things, but it doesn’t add anything constructive to the conversation.

2 Likes