mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 03:25:23 +08:00
Dynamic loading: Skip reference assemblies in ~/bin
--HG-- branch : dev
This commit is contained in:
@@ -222,6 +222,10 @@ namespace Orchard.Environment.Extensions {
|
||||
string referenceName,
|
||||
IList<DependencyReferenceDescriptor> activatedReferences) {
|
||||
|
||||
// Skip references from "~/bin"
|
||||
if (_buildManager.HasReferencedAssembly(referenceName))
|
||||
return;
|
||||
|
||||
// Binary references
|
||||
var references = context.ReferencesByName.ContainsKey(referenceName) ?
|
||||
context.ReferencesByName[referenceName] :
|
||||
|
@@ -8,6 +8,7 @@ using Orchard.FileSystems.VirtualPath;
|
||||
namespace Orchard.Environment {
|
||||
public interface IBuildManager : IDependency {
|
||||
IEnumerable<Assembly> GetReferencedAssemblies();
|
||||
bool HasReferencedAssembly(string name);
|
||||
Assembly GetReferencedAssembly(string name);
|
||||
Assembly GetCompiledAssembly(string virtualPath);
|
||||
}
|
||||
@@ -23,9 +24,13 @@ namespace Orchard.Environment {
|
||||
return BuildManager.GetReferencedAssemblies().OfType<Assembly>();
|
||||
}
|
||||
|
||||
public Assembly GetReferencedAssembly(string name) {
|
||||
public bool HasReferencedAssembly(string name) {
|
||||
var assemblyPath = _virtualPathProvider.Combine("~/bin", name + ".dll");
|
||||
if (!_virtualPathProvider.FileExists(assemblyPath))
|
||||
return _virtualPathProvider.FileExists(assemblyPath);
|
||||
}
|
||||
|
||||
public Assembly GetReferencedAssembly(string name) {
|
||||
if (!HasReferencedAssembly(name))
|
||||
return null;
|
||||
|
||||
return Assembly.Load(name);
|
||||
|
Reference in New Issue
Block a user