我们使用了LESS代码和MVC3应用程序的捆绑,一切正常。 在我们的RegisterBundles()中,我们有如下代码:
var bundle = new
Bundle("~/assets/styles/EnhancedLayoutLess")
.Include("~/assets/styles/enhanced-layout.less");
bundle.Transforms.Add(new CssTransformer());
BundleTable.Bundles.Add(bundle);
然而,当我们尝试检索捆绑包时,升级到MVC4和最新版本的BundleTransformer:Core(1.6.28),BundleTransfomer:LESS(1.6.26)和Microsoft ASP.NET Web Optimization Framework(1.1.0)之后我们收到以下错误:
找不到方法: “System.Collections.Generic.IEnumerable`1 System.Web.Optimization.BundleResponse.get_Files()”
[MissingMethodException:找不到方法: 'System.Collections.Generic.IEnumerable
1<System.IO.FileInfo> System.Web.Optimization.BundleResponse.get_Files()'.]
1 bundleFiles)+198
BundleTransformer.Core.Transformers.TransformerBase.Process(BundleContext context, BundleResponse response) +0
System.Web.Optimization.Bundle.ApplyTransforms(BundleContext context, String bundleContent, IEnumerable
System.Web.Optimization.Bundle.ProcessRequest(BundleContext context) +269 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +913 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&amp; completedSynchronously)+165
有什么建议我应该检查一下吗?或者如何在MVC4下使LESS捆绑工作?
答案 0 :(得分:2)
我遇到了同样的问题,我找到了解决办法:) 此问题是由YuiCompressorTransform类(Yahoo.Yui.Compressor.Web.Optimization)引起的。
处理方法包含以下代码:
// Grab all of the content.
var rawContent = new StringBuilder();
foreach (var fileInfo in response.Files)
{
using (var reader = fileInfo.OpenText())
{
rawContent.Append(reader.ReadToEnd());
}
}
但是fileInfo没有OpenText方法。
我已将此更改为以下代码:
using (var stream = fileInfo.VirtualFile.Open())
{
var streamReader = new StreamReader(stream);
rawContent.Append(streamReader.ReadToEnd());
streamReader.Close();
}
一切正常。 链接到正确的班级:https://gist.github.com/gr4b4z/8349097
答案 1 :(得分:0)
虽然,初看起来似乎是一个不同的问题,这篇文章解决了我的问题: ASP.NET MVC4 App fails to compile Bootstrap.LESS on production while it works on dev
两种情况下的根本原因都是一样的。显然在MVC4捆绑中使用虚拟路径和现在正常解析的LESS导入无法找到相关文件。
答案 2 :(得分:0)
只有BundleTransformer.Core 1.6.28与Microsoft ASP.NET Web Optimization Framework 1.1.0不兼容。此时,有必要使用BundleTransformer.Core 1.7.12 Beta 1或等待版本1.7.16的发布。