@@ -157,6 +157,16 @@ namespace AppInstaller::CLI::Workflow
157157 HRESULT HResult;
158158 Resource::StringId Message;
159159 };
160+
161+ void CheckForOnlyDependencies (Execution::Context& context)
162+ {
163+ if (context.Args .Contains (Execution::Args::Type::DependenciesOnly))
164+ {
165+ context.Reporter .Info () << Resource::String::DependenciesOnlyMessage << std::endl;
166+ // We want the context to terminate, but successfully.
167+ context.SetTerminationHR (S_OK);
168+ }
169+ }
160170 }
161171
162172 namespace details
@@ -640,6 +650,7 @@ namespace AppInstaller::CLI::Workflow
640650 Workflow::ShowPromptsForSinglePackage (/* ensureAcceptance */ true ) <<
641651 Workflow::CreateDependencySubContexts (Resource::String::PackageRequiresDependencies) <<
642652 Workflow::InstallDependencies <<
653+ CheckForOnlyDependencies <<
643654 Workflow::DownloadInstaller <<
644655 Workflow::InstallPackageInstaller <<
645656 Workflow::RegisterStartupAfterReboot ();
@@ -712,6 +723,7 @@ namespace AppInstaller::CLI::Workflow
712723 m_stopOnFailure = WI_IsFlagSet (flags, Flags::StopOnFailure);
713724 m_refreshPathVariable = WI_IsFlagSet (flags, Flags::RefreshPathVariable);
714725 m_downloadOnly = WI_IsFlagSet (flags, Flags::DownloadOnly);
726+ m_dependenciesOnly = WI_IsFlagSet (flags, Flags::DependenciesOnly);
715727 }
716728
717729 void ProcessMultiplePackages::operator ()(Execution::Context& context) const
@@ -763,6 +775,11 @@ namespace AppInstaller::CLI::Workflow
763775 size_t packagesCount = packageSubContexts.size ();
764776 size_t packagesProgress = 0 ;
765777
778+ if (m_dependenciesOnly)
779+ {
780+ context.Reporter .Info () << Resource::String::DependenciesOnlyMessage << std::endl;
781+ }
782+
766783 for (auto & packageContext : packageSubContexts)
767784 {
768785 packagesProgress++;
@@ -786,11 +803,14 @@ namespace AppInstaller::CLI::Workflow
786803 Workflow::ProcessMultiplePackages (m_dependenciesReportMessage, APPINSTALLER_CLI_ERROR_INSTALL_DEPENDENCIES, Flags::IgnoreDependencies | Flags::StopOnFailure | Flags::RefreshPathVariable);
787804 }
788805
789- currentContext << Workflow::DownloadInstaller;
790-
791- if (!downloadInstallerOnly)
806+ if (!m_dependenciesOnly)
792807 {
793- currentContext << Workflow::InstallPackageInstaller;
808+ currentContext << Workflow::DownloadInstaller;
809+
810+ if (!downloadInstallerOnly)
811+ {
812+ currentContext << Workflow::InstallPackageInstaller;
813+ }
794814 }
795815 }
796816 catch (...)
0 commit comments