diff --git a/src/ReactiveUI/Mixins/DependencyResolverMixins.cs b/src/ReactiveUI/Mixins/DependencyResolverMixins.cs index 15c51860f5..fb6622fd11 100644 --- a/src/ReactiveUI/Mixins/DependencyResolverMixins.cs +++ b/src/ReactiveUI/Mixins/DependencyResolverMixins.cs @@ -6,6 +6,7 @@ using System; using System.Diagnostics.CodeAnalysis; using System.Globalization; +using System.IO; using System.Linq; using System.Linq.Expressions; using System.Reflection; @@ -44,7 +45,9 @@ public static void InitializeReactiveUI(this IMutableDependencyResolver resolver var assemblyName = new AssemblyName(fdr.AssemblyQualifiedName.Replace(fdr.FullName + ", ", string.Empty)); - extraNs.ForEach(ns => ProcessRegistrationForNamespace(ns, assemblyName, resolver)); + extraNs + .Where(GetNamespaceExists) + .ForEach(ns => ProcessRegistrationForNamespace(ns, assemblyName, resolver)); } /// @@ -118,5 +121,12 @@ private static void ProcessRegistrationForNamespace(string ns, AssemblyName asse registerer.Register((f, t) => resolver.RegisterConstant(f(), t)); } } + + private static bool GetNamespaceExists(string namespaceName) + { + string folderPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + string assemblyPath = Path.Combine(folderPath, new AssemblyName(namespaceName).Name + ".dll"); + return File.Exists(assemblyPath); + } } }