May 07 2020 04:34 AM
Hi,
I have a scenario. I am installing an SCCM Application.
1) I have installed Firefox 1.0 on my machine.
2) On top of it, I have installed Firefox 2.0 ( No Supersedence used, Firefox 2.0 has internal logic to uninstall Firefox 1.0).
3) So after sometime, I found Firefox 1.0 getting installed back on my machine and sitting together with Firefox 2.0.
I was puzzled how it got re-installed. I had checked the AppDicovery.log and found below,
SCCM was checking the detection method and found Firefox 1.0 missing from the machine so it brought back the Firefox 1.0.
1) Does it mean I cannot use internal logic to uninstall previous versions ?
2) Let us suppose an Application has detection method to check file existence, C:\temp\A.txt.
If user accidentally deletes this file, will the whole application re-install on the user machine ?
Please advise.
May 07 2020 05:44 AM
@arjun_padanakandy89 if you detection logic is to look for a file then if you delete the file, yes it will try to reinstall.
May 07 2020 02:50 PM
Solution
As Garth said, when the appintenteval runs, and it finds a required deployment is no longer installed, it will automatically run the install program for that application.
That said, if you're not using Supersedence, then I'm assuming you still have Firefox v1 deployed as required. You should remove that required deployment so it doesn't try to reinstall.
May 07 2020 11:25 PM
May 08 2020 12:51 AM
May 11 2020 02:43 AM
@arjun_padanakandy89 A third option would be to create a detection method that is also satisfied for newer versions of the same product. This mechanism is used in the default application deployment types for Microsoft Edge and Microsoft Office 365. Basically, we check for the product version as written in the registry to be greater than or equal to the version we're deploying. That way, the deployment is still considered compliant, even if the built-in application update mechanism has updated the application to a newer version.
May 11 2020 02:49 AM
May 11 2020 10:17 PM
@Michiel Overweel Thank you for the reply. We have a huge User base in our organization.
Once an Application is created, we do some User acceptance testing (on 1-2 devices) before deploying on the wide user base. So if I make any changes to the Application I will not be able to perform any User acceptance testing, it will be directly deployed onto User machines targeted by the deployment.
Can you advise how can we handle this scenario ?
May 12 2020 06:53 AM
@arjun_padanakandy89 I may be misunderstanding your question, but I don't see a problem in the scenario you're describing. Initially, you should deploy the new application to a collection containing the test users or devices only, either as Required or as Available. This allows the test users to perform their acceptance testing, and it allows you to make changes to the application without affecting anyone except the test users. Once you're satisfied that the application works as intended, you can deploy it to the production collection(s).
May 12 2020 07:38 AM
@Michiel Overweel
We are almost there on the same page. So yes, my Application is on the Production Collection now.
Let us suppose the Vendor comes back with a fix/patch after a week. And we as a part of Packaging team are asked to make the new changes in the same Application and Update the Content.
So I have created a new deployment type for Fix, with a detection method, which will install only if Base Application is present.
So now that I have made the changes, I will deploy the Application on test collection for acceptance tests.
This is where I observed, all the users in Production collection also received the updated content.
As I mentioned earlier, we have a long list of Collection for respective regions across the globe. Do you suggest to remove the Collection as soon as the Application installs ? And is this scenario only for Applications and not for packages ?
May 13 2020 07:49 AM
@arjun_padanakandy89 First of all, I would never create a new Deployment Type to install an update for an existing application. That's not what DT's are intended for. What I would do is either:
I would definitely recommend the second scenario; much simpler to implement and maintain.
May 07 2020 02:50 PM
Solution
As Garth said, when the appintenteval runs, and it finds a required deployment is no longer installed, it will automatically run the install program for that application.
That said, if you're not using Supersedence, then I'm assuming you still have Firefox v1 deployed as required. You should remove that required deployment so it doesn't try to reinstall.