diff --git a/src/AppInstallerCLICore/ConfigurationDynamicRuntimeFactory.cpp b/src/AppInstallerCLICore/ConfigurationDynamicRuntimeFactory.cpp index b16ea34410..269dc483df 100644 --- a/src/AppInstallerCLICore/ConfigurationDynamicRuntimeFactory.cpp +++ b/src/AppInstallerCLICore/ConfigurationDynamicRuntimeFactory.cpp @@ -435,6 +435,9 @@ namespace AppInstaller::CLI::ConfigurationRemoting strong_this->m_dynamicFactory->SendDiagnostics(information); } }); + + winrt::hstring propertyName = ConfigurationRemoting::ToHString(ConfigurationRemoting::PropertyName::DiagnosticTraceEnabled); + factory.as>().Insert(propertyName, m_dynamicFactory->GetFactoryMapValue(propertyName)); } return m_setProcessors.emplace(integrityLevel, DynamicProcessorInfo{ factory, factory.CreateSetProcessor(m_configurationSet), std::move(factoryDiagnosticsEventRevoker) }).first; diff --git a/src/AppInstallerCLICore/ConfigurationSetProcessorFactoryRemoting.cpp b/src/AppInstallerCLICore/ConfigurationSetProcessorFactoryRemoting.cpp index 4ff02ac538..352e5e634f 100644 --- a/src/AppInstallerCLICore/ConfigurationSetProcessorFactoryRemoting.cpp +++ b/src/AppInstallerCLICore/ConfigurationSetProcessorFactoryRemoting.cpp @@ -300,12 +300,14 @@ namespace AppInstaller::CLI::ConfigurationRemoting bool Insert(winrt::hstring key, winrt::hstring value) { - return m_remoteFactory.as>().Insert(key, value); + auto map = m_remoteFactory.try_as>(); + return map ? map.Insert(key, value) : false; } winrt::hstring Lookup(winrt::hstring key) { - return m_remoteFactory.as>().Lookup(key); + auto map = m_remoteFactory.try_as>(); + return map ? map.Lookup(key) : winrt::hstring{}; } HRESULT STDMETHODCALLTYPE SetLifetimeWatcher(IUnknown* watcher) diff --git a/src/Microsoft.Management.Configuration.Processor/DSCv3/Helpers/ProcessorRunSettings.cs b/src/Microsoft.Management.Configuration.Processor/DSCv3/Helpers/ProcessorRunSettings.cs index 16618ebf76..ba1bdf3ebe 100644 --- a/src/Microsoft.Management.Configuration.Processor/DSCv3/Helpers/ProcessorRunSettings.cs +++ b/src/Microsoft.Management.Configuration.Processor/DSCv3/Helpers/ProcessorRunSettings.cs @@ -47,11 +47,11 @@ public static ProcessorRunSettings CreateFromFindUnitProcessorsOptions(FindUnitP /// /// The resource details to be used. /// A ProcessorRunSettings. - public static ProcessorRunSettings CreateFromResourceDetails(ResourceDetails resourceDetails) + public static ProcessorRunSettings CreateFromResourceDetails(ResourceDetails? resourceDetails) { return new ProcessorRunSettings { - ResourceSearchPaths = Path.GetDirectoryName(resourceDetails.Path) ?? string.Empty, + ResourceSearchPaths = Path.GetDirectoryName(resourceDetails?.Path) ?? string.Empty, ResourceSearchPathsExclusive = false, }; } diff --git a/src/Microsoft.Management.Configuration.Processor/DSCv3/Set/DSCv3ConfigurationSetProcessor.cs b/src/Microsoft.Management.Configuration.Processor/DSCv3/Set/DSCv3ConfigurationSetProcessor.cs index cb2e420420..a678a73e91 100644 --- a/src/Microsoft.Management.Configuration.Processor/DSCv3/Set/DSCv3ConfigurationSetProcessor.cs +++ b/src/Microsoft.Management.Configuration.Processor/DSCv3/Set/DSCv3ConfigurationSetProcessor.cs @@ -41,7 +41,9 @@ protected override IConfigurationUnitProcessor CreateUnitProcessorInternal(Confi if (resourceDetails == null) { this.OnDiagnostics(DiagnosticLevel.Verbose, $"Resource not found: {configurationUnitInternal.QualifiedName}"); - throw new Exceptions.FindDscResourceNotFoundException(configurationUnitInternal.QualifiedName, null); + + // Don't throw when the resource is not found until https://github.com/PowerShell/DSC/issues/786 is resolved + // throw new Exceptions.FindDscResourceNotFoundException(configurationUnitInternal.QualifiedName, null); } return new DSCv3ConfigurationUnitProcessor(this.processorSettings, resourceDetails, configurationUnitInternal, this.IsLimitMode) { SetProcessorFactory = this.SetProcessorFactory }; diff --git a/src/Microsoft.Management.Configuration.Processor/DSCv3/Unit/DSCv3ConfigurationUnitProcessor.cs b/src/Microsoft.Management.Configuration.Processor/DSCv3/Unit/DSCv3ConfigurationUnitProcessor.cs index 7ed8557469..ff0a11c4b5 100644 --- a/src/Microsoft.Management.Configuration.Processor/DSCv3/Unit/DSCv3ConfigurationUnitProcessor.cs +++ b/src/Microsoft.Management.Configuration.Processor/DSCv3/Unit/DSCv3ConfigurationUnitProcessor.cs @@ -21,7 +21,7 @@ namespace Microsoft.Management.Configuration.Processor.DSCv3.Unit internal sealed partial class DSCv3ConfigurationUnitProcessor : ConfigurationUnitProcessorBase, IConfigurationUnitProcessor, IGetAllSettingsConfigurationUnitProcessor, IGetAllUnitsConfigurationUnitProcessor, IDiagnosticsSink { private readonly ProcessorSettings processorSettings; - private readonly ResourceDetails resourceDetails; + private readonly ResourceDetails? resourceDetails; /// /// Initializes a new instance of the class. @@ -30,7 +30,7 @@ internal sealed partial class DSCv3ConfigurationUnitProcessor : ConfigurationUni /// The resource to use. /// Internal unit. /// Whether it is under limit mode. - internal DSCv3ConfigurationUnitProcessor(ProcessorSettings processorSettings, ResourceDetails resourceDetails, ConfigurationUnitInternal unitInternal, bool isLimitMode = false) + internal DSCv3ConfigurationUnitProcessor(ProcessorSettings processorSettings, ResourceDetails? resourceDetails, ConfigurationUnitInternal unitInternal, bool isLimitMode = false) : base(unitInternal, isLimitMode) { this.processorSettings = processorSettings; diff --git a/src/Microsoft.Management.Configuration.UnitTests/Tests/DSCv3ProcessorTests.cs b/src/Microsoft.Management.Configuration.UnitTests/Tests/DSCv3ProcessorTests.cs index c91d007a51..32814f8a80 100644 --- a/src/Microsoft.Management.Configuration.UnitTests/Tests/DSCv3ProcessorTests.cs +++ b/src/Microsoft.Management.Configuration.UnitTests/Tests/DSCv3ProcessorTests.cs @@ -93,7 +93,7 @@ public void Set_UnitPropertyDetailsCached() /// /// Test for unit processor creation requiring resource to be found. /// - [Fact] + [Fact(Skip = "Disable this test while we have the bypass in place")] public void Set_ResourceNotFoundIsError() { var (factory, dsc) = CreateTestFactory();