diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageBuilder.cs b/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageBuilder.cs index aa6555520..2cbbad486 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageBuilder.cs +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageBuilder.cs @@ -6,6 +6,7 @@ using System.Net.Mime; using System.Reflection; using System.Xml.Linq; using NuGet; +using Orchard.Environment; using Orchard.Environment.Extensions; using Orchard.Environment.Extensions.Models; using Orchard.FileSystems.VirtualPath; @@ -18,6 +19,7 @@ namespace Orchard.Packaging.Services { public class PackageBuilder : IPackageBuilder { private readonly IWebSiteFolder _webSiteFolder; private readonly IVirtualPathProvider _virtualPathProvider; + private readonly IOrchardFrameworkAssemblies _frameworkAssemblies; private static readonly string[] _ignoredThemeExtensions = new[] { "obj", "pdb", "exclude" @@ -34,9 +36,12 @@ namespace Orchard.Packaging.Services { } public PackageBuilder(IWebSiteFolder webSiteFolder, - IVirtualPathProvider virtualPathProvider) { + IVirtualPathProvider virtualPathProvider, + IOrchardFrameworkAssemblies frameworkAssemblies) { + _webSiteFolder = webSiteFolder; _virtualPathProvider = virtualPathProvider; + _frameworkAssemblies = frameworkAssemblies; } public Stream BuildPackage(ExtensionDescriptor extensionDescriptor) { @@ -112,10 +117,14 @@ namespace Orchard.Packaging.Services { foreach (var entry in entries) { var assemblyName = new AssemblyName(entry.Include.Value); - string virtualPath = _virtualPathProvider.GetReferenceVirtualPath(context.SourcePath, assemblyName.Name, entry.HintPath != null ? entry.HintPath.Value : null); - if (!string.IsNullOrEmpty(virtualPath)) { - EmbedVirtualFile(context, virtualPath, MediaTypeNames.Application.Octet); + // If it is not a core assembly + if (_frameworkAssemblies.GetFrameworkAssemblies().FirstOrDefault(assembly => assembly.FullName.Equals(assemblyName.FullName)) == null) { + string virtualPath = _virtualPathProvider.GetReferenceVirtualPath(context.SourcePath, assemblyName.Name, entry.HintPath != null ? entry.HintPath.Value : null); + + if (!string.IsNullOrEmpty(virtualPath)) { + EmbedVirtualFile(context, virtualPath, MediaTypeNames.Application.Octet); + } } } } diff --git a/src/Orchard/Environment/IOrchardFrameworkAssemblies.cs b/src/Orchard/Environment/IOrchardFrameworkAssemblies.cs new file mode 100644 index 000000000..2402cfb98 --- /dev/null +++ b/src/Orchard/Environment/IOrchardFrameworkAssemblies.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; +using System.Reflection; + +namespace Orchard.Environment { + public interface IOrchardFrameworkAssemblies : IDependency { + IEnumerable GetFrameworkAssemblies(); + } + + public class DefaultOrchardFrameworkAssemblies : IOrchardFrameworkAssemblies { + public IEnumerable GetFrameworkAssemblies() { + return typeof (IDependency).Assembly.GetReferencedAssemblies(); + } + } +} diff --git a/src/Orchard/Mvc/ViewEngines/Razor/IRazorCompilationEvents.cs b/src/Orchard/Mvc/ViewEngines/Razor/IRazorCompilationEvents.cs index c0933ff0f..a0d2b3769 100644 --- a/src/Orchard/Mvc/ViewEngines/Razor/IRazorCompilationEvents.cs +++ b/src/Orchard/Mvc/ViewEngines/Razor/IRazorCompilationEvents.cs @@ -7,7 +7,6 @@ using System.Web.WebPages.Razor; using Orchard.Environment; using Orchard.Environment.Extensions.Loaders; using Orchard.FileSystems.Dependencies; -using Orchard.FileSystems.VirtualPath; namespace Orchard.Mvc.ViewEngines.Razor { public interface IRazorCompilationEvents { diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index 3e620961c..dc713d2b6 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -185,6 +185,7 @@ +