Combine ClientPatch and Patch property
The outdated ClientPatch folder in the 'Configuration Manager Client Package' is unsupported, however it is a great combination for retrieving from a local DP (leveraging the /mp-option to retrieve content based on boundaries) and getting the patch installed.
Considering that CCMEval also reruns with the last command-line used the availability of a ConfigMgr patch is vital (otherwise a 1635 error is generated if the new installation attempt can't access the MSP-file) perhaps the supported Patch-property and the ClientPatch-concept can be combined into a new supported way of deploying patches?
The scenario would be as follows;
CCMSetup detects that there is a patch in the folder (for example) x64\ClientPatch
Sets to download the file to c:\windows\ccmsetup
Generates (dynamically) the PATCH property and referencing the local-file.
This would allow the following benefits;
1. A single package for Client Deployment
2. Fast download as the package can be retrieved from local DP based on boundaries
3. Ensure that CCMEval can continue to repair the client and re-download the patch from a DP if it were to go missing (like all other pre-reqs)
Forgot to mention:
Main concern with using the PATCH-property today is that the recommended method is either to perform a pre-copy operation to local disk or referencing a UNC-path.
With the pre-copy you obviously need the usage of additional patch files and the copy might not be as effecient as using the download from a local DP (again - copying from a UNC-path) and using the reference to a file-share might not be as effecient as using the download from a local DP.
And since the UNC-path might be in a high-latency / low-bandwidth scenario (VPN through a coffee-shop, the remote office which has no local infrastructure etc etc) a triggered repair would of course try to use this remote patch-file. In such a scenario this is a very common failure:
MSI: Action 1:44:18: InstallFiles. Copying new files ccmsetup 2015-08-02 01:44:18 8560 (0x2170)
MSI: Internal Error 2902. ixfAssemblyCopy ccmsetup 2015-08-02 01:44:20 8560 (0x2170)
MSI: Action 1:44:21: Rollback. Rolling back action: ccmsetup 2015-08-02 01:44:21 8560 (0x2170)