diff --git a/src/Orchard/Environment/Extensions/Loaders/ProbingExtensionLoader.cs b/src/Orchard/Environment/Extensions/Loaders/ProbingExtensionLoader.cs
index 424747c2e..1073e093f 100644
--- a/src/Orchard/Environment/Extensions/Loaders/ProbingExtensionLoader.cs
+++ b/src/Orchard/Environment/Extensions/Loaders/ProbingExtensionLoader.cs
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
-using Orchard.Caching;
using Orchard.Environment.Extensions.Compilers;
using Orchard.Environment.Extensions.Models;
using Orchard.FileSystems.Dependencies;
@@ -13,8 +12,8 @@ using Orchard.Utility.Extensions;
namespace Orchard.Environment.Extensions.Loaders {
///
- /// In case is disabled, this loader will dynamically compile the assembly
- /// and save a copy to the probing folder so that next restart doesn't need to compile it again.
+ /// In case is disabled, this loader will dynamically compile the assembly.
+ /// It won't monitor the filesystem.
///
public class ProbingExtensionLoader : ExtensionLoaderBase {
public static readonly string[] ExtensionsVirtualPathPrefixes = { "~/Modules/", "~/Themes/" };
@@ -23,13 +22,11 @@ namespace Orchard.Environment.Extensions.Loaders {
private readonly IVirtualPathProvider _virtualPathProvider;
private readonly IHostEnvironment _hostEnvironment;
private readonly IAssemblyProbingFolder _assemblyProbingFolder;
- private readonly IDependenciesFolder _dependenciesFolder;
private readonly IProjectFileParser _projectFileParser;
public ProbingExtensionLoader(
IBuildManager buildManager,
IVirtualPathProvider virtualPathProvider,
- IVirtualPathMonitor virtualPathMonitor,
IHostEnvironment hostEnvironment,
IAssemblyProbingFolder assemblyProbingFolder,
IDependenciesFolder dependenciesFolder,
@@ -41,7 +38,6 @@ namespace Orchard.Environment.Extensions.Loaders {
_hostEnvironment = hostEnvironment;
_assemblyProbingFolder = assemblyProbingFolder;
_projectFileParser = projectFileParser;
- _dependenciesFolder = dependenciesFolder;
Logger = NullLogger.Instance;
}
@@ -122,7 +118,7 @@ namespace Orchard.Environment.Extensions.Loaders {
if (StringComparer.OrdinalIgnoreCase.Equals(Path.GetExtension(reference.VirtualPath), ".dll"))
result = _assemblyProbingFolder.LoadAssembly(reference.Name);
else {
- result = ProbeAssembly(reference.Name, reference.VirtualPath);
+ result = CompileAssembly(reference.Name, reference.VirtualPath);
}
Logger.Information("Done loading reference '{0}'", reference.Name);
@@ -163,7 +159,7 @@ namespace Orchard.Environment.Extensions.Loaders {
if (projectPath == null)
return null;
- assembly = ProbeAssembly(descriptor.Id, projectPath);
+ assembly = CompileAssembly(descriptor.Id, projectPath);
}
if (assembly == null)
@@ -178,60 +174,13 @@ namespace Orchard.Environment.Extensions.Loaders {
};
}
- private void AddDependencies(string projectPath, HashSet currentSet) {
- // Skip files from locations other than "~/Modules" and "~/Themes"
- if (string.IsNullOrEmpty(PrefixMatch(projectPath, ExtensionsVirtualPathPrefixes))) {
- return;
- }
-
- // Add project path
- currentSet.Add(projectPath);
-
- // Add source file paths
- var projectFile = _projectFileParser.Parse(projectPath);
- string basePath = _virtualPathProvider.GetDirectoryName(projectPath);
- currentSet.UnionWith(projectFile.SourceFilenames.Select(f => _virtualPathProvider.Combine(basePath, f)));
-
- // Add Project and Library references
- if (projectFile.References != null) {
- foreach (ReferenceDescriptor referenceDescriptor in projectFile.References.Where(reference => !string.IsNullOrEmpty(reference.Path))) {
- string path = referenceDescriptor.ReferenceType == ReferenceType.Library
- ? _virtualPathProvider.GetProjectReferenceVirtualPath(projectPath, referenceDescriptor.SimpleName, referenceDescriptor.Path)
- : _virtualPathProvider.Combine(basePath, referenceDescriptor.Path);
-
- // Normalize the virtual path (avoid ".." in the path name)
- if (!string.IsNullOrEmpty(path)) {
- path = _virtualPathProvider.ToAppRelative(path);
- }
-
- // Attempt to reference the project / library file
- if (!string.IsNullOrEmpty(path) && !currentSet.Contains(path) && _virtualPathProvider.TryFileExists(path)) {
- switch (referenceDescriptor.ReferenceType) {
- case ReferenceType.Project:
- AddDependencies(path, currentSet);
- break;
- case ReferenceType.Library:
- currentSet.Add(path);
- break;
- }
- }
- }
- }
- }
-
- private Assembly ProbeAssembly(string moduleName, string virtualPath) {
+ private Assembly CompileAssembly(string moduleName, string virtualPath) {
var assembly = _buildManager.GetCompiledAssembly(virtualPath);
- if (assembly != null) {
- _assemblyProbingFolder.StoreAssembly(moduleName, assembly.Location);
- return assembly;
- }
+ //if (assembly != null) {
+ // _assemblyProbingFolder.StoreAssembly(moduleName, assembly.Location);
+ //}
- return null;
- }
-
- private static string PrefixMatch(string virtualPath, params string[] prefixes) {
- return prefixes
- .FirstOrDefault(p => virtualPath.StartsWith(p, StringComparison.OrdinalIgnoreCase));
+ return assembly;
}
private string GetProjectPath(ExtensionDescriptor descriptor) {