升级的dotLess错误:IImporter不包含'Paths'的定义

时间:2014-03-26 15:41:52

标签: c# .net asp.net-mvc .net-4.5 dotless

我在项目中有以下代码我尝试从" 1.2.2.0"升级 "dotless" NuGet package 到最新的(现在" 1.4.0.0"):

private void GetStylesheetContent(HttpContext context, string name)
{
    var conf = BundleConfigSectionHandler.GetConfig();
    var elt = conf.Stylesheets.GetBundle(name); 
    if (elt != null) {
        Minifier minifier = null;
        if (_conf.Stylesheets.Minify) {
            minifier = new Minifier();
        }    
        var files = elt.ListFiles();
        var existingFiles = new List<string>();    
        StringBuilder buffer = new StringBuilder();

        foreach (var file in files) {
            var physicalFile = context.Request.MapPath(file);
            if (File.Exists(physicalFile)) {
                existingFiles.Add(physicalFile);                        
                string content;
                var path = VirtualPathUtility.GetDirectory(file);
                if (file.EndsWith(".less", StringComparison.OrdinalIgnoreCase)) 
                {
                    var reader = new dotless.Core.Input.VirtualFileReader();
                    var localpath = VirtualPathUtility.ToAbsolute(file);
                    content = reader.GetFileContents(localpath);
                    var parse = new Parser();
                    parse.Importer = new Importer(reader);

        /*Error>*/ parse.Importer.Paths.Add(VirtualPathUtility.ToAbsolute(path));

                    var eng = new LessEngine(parse);
                    content = eng.TransformToCss(content, localpath);

错误位于底部的第三行。它说:

  

错误417&#39; dotless.Core.Importers.IImporter &#39;不包含   &#39; 路径&#39;的定义没有扩展方法&#39;路径&#39;接受一个   类型&#39; dotless.Core.Importers.IImporter&#39;的第一个参数可能   发现(您是否缺少using指令或程序集引用?)

遗憾的是,该团队没有使用[Obsolete]属性和建议升级旧方法。 有谁知道如何替换&#34; Importer.Paths.Add&#34;方法?

1 个答案:

答案 0 :(得分:0)

我对无点的内部运作并不熟悉。但是要查看导入器的the source code。自版本1.2.3以来pathsprotected。再看一下课程,您似乎需要使用dotless.Parser.Tree.Import的实例手动添加路径。

看起来这与普通的无点路径相差甚远。因此,如果API在这些领域有点不稳定,我不会感到惊讶。您还可以查看捆绑如何在How to use ASP.Net MVC 4 to Bundle LESS files in Release mode?之类的问题中工作,以了解它们如何处理所有无点类。