我在项目中有以下代码我尝试从" 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;方法?
答案 0 :(得分:0)
我对无点的内部运作并不熟悉。但是要查看导入器的the source code。自版本1.2.3以来paths
已protected
。再看一下课程,您似乎需要使用dotless.Parser.Tree.Import
的实例手动添加路径。
看起来这与普通的无点路径相差甚远。因此,如果API在这些领域有点不稳定,我不会感到惊讶。您还可以查看捆绑如何在How to use ASP.Net MVC 4 to Bundle LESS files in Release mode?之类的问题中工作,以了解它们如何处理所有无点类。