C# BundleTransformer.Less无法分析@import语句中的变量

C# BundleTransformer.Less无法分析@import语句中的变量,c#,.net,less,bundle,bundletransformer,C#,.net,Less,Bundle,Bundletransformer,编辑: 因此,根据这是不可能的,这是一个真正的耻辱。我需要寻找一个在导入中支持变量的情况下进行捆绑和压缩的库 我在尝试解析以下内容时遇到困难: // There is a path to Startup framework @startup-basePath: "../../../"; @import '@{startup-basePath}flat-ui/less/config.less'; @import '@{startup-basePath}flat-ui/less/mixins.le

编辑: 因此,根据这是不可能的,这是一个真正的耻辱。我需要寻找一个在导入中支持变量的情况下进行捆绑和压缩的库

我在尝试解析以下内容时遇到困难:

// There is a path to Startup framework
@startup-basePath: "../../../";

@import '@{startup-basePath}flat-ui/less/config.less';
@import '@{startup-basePath}flat-ui/less/mixins.less';
它会产生以下错误:

You are importing a file ending in .less that cannot be found.":"/lib/startup/samples/template/less/@{startup-basePath}flat-ui/less/config.less
文件确实存在,但正如您所看到的,它没有解析位置字符串中的变量。VS2013中的Web Essentials在编译较少的文件并按预期输出CSS方面没有问题。我怀疑问题在于BundleTransformer或其设置方式。我正在使用以下版本:

Id                             Version              Description/Release Notes                                                                                                                                      
--                             -------              -------------------------                                                                                                                                      
BundleTransformer.Core         1.8.0                Bundle Transformer - a modular extension for System.Web.Optimization (aka Microsoft ASP.NET Web Optimization Framework). Classes `CssTransformer` and `JsTra...
BundleTransformer.Less         1.7.16               BundleTransformer.Less contains translator-adapter LessTranslator. This adapter makes translation of LESS-code to CSS-code. Also contains HTTP-handler LessA...
BundleTransformer.Yui          1.8.0                BundleTransformer.Yui contains 2 minifier-adapters: `YuiCssMinifier` (for minification of CSS-code) and `YuiJsMinifier` (for minification of JS-code). These...
我必须使用这些版本,因为我使用的是Umbraco 7,它不允许我在不破坏Umbraco的情况下更新Newtonsoft.Json

我的捆绑包配置文件如下所示:

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.UseCdn = true;

    var nullBuilder = new NullBuilder();
    var nullOrderer = new NullOrderer();

    // CSS + LESS
    var libCSS = new CustomStyleBundle("~/libCSS");
    libCSS.Include(
        "~/Content/font-awesome.css",

        // LESS
        "~/lib/startup/samples/template/less/style.less");

    libCSS.Orderer = nullOrderer;

    bundles.Add(libCSS);
}
我认为问题在于Less变压器未正确注册,但我严格遵守了安装说明,请参阅Less版本的文档。有人能看到我遗漏的有助于解决这个问题的东西吗?或者有人能推荐一些我可以尝试的东西吗


感谢所有帮助。

我也尝试过此库,但未成功:/

编译LESS的最佳解决方案是node.js包LESS或serve

因为部署web项目后,较少的文件不会更改,所以不必在每次应用程序初始化期间生成css

您还可以在应用程序构建之前或保存更少的文件之后生成CSS


如果您感兴趣,我可以帮助您了解更多信息。

BundletTransformer.Less不支持文件路径中的字符串插值,请参阅讨论


更新:In现在支持文件路径插值。

这些BundleTransformer软件包的1.9.40和1.9.34版本让我更幸运。我有时会遇到1.8版本失败的问题。我们已经使用BundleTransformer.Core.1.9.40、BundleTransformer.Less.1.9.40和BundleTransformer.Yui.1.9.34几个星期了,没有出现1.8版本的任何错误