C# DurandalAuth 2.0.1的Weyland构建失败

C# DurandalAuth 2.0.1的Weyland构建失败,c#,asp.net,visual-studio,durandal-2.0,weyland,C#,Asp.net,Visual Studio,Durandal 2.0,Weyland,有一个非常壮观的例子,基于DurandalJS的ASP.NET MVC 5支持SPA,位于: 不过,它有一个问题,就是Weyland驱动的优化在Visual Studio的构建后事件中失败,并显示如下消息 这很奇怪,因为生成后事件是这样的: cd $(ProjectDir) weyland build 当从命令行执行时,其工作正常: 为什么会这样?我已经在网上搜索过了,我一直在寻找一个类似但(也许)不相关的问题的引用,其中有一行额外的配置 "insertRequire: ['main']

有一个非常壮观的例子,基于DurandalJS的ASP.NET MVC 5支持SPA,位于:

不过,它有一个问题,就是Weyland驱动的优化在Visual Studio的构建后事件中失败,并显示如下消息

这很奇怪,因为生成后事件是这样的:

cd $(ProjectDir)
weyland build
当从命令行执行时,其工作正常:

为什么会这样?我已经在网上搜索过了,我一直在寻找一个类似但(也许)不相关的问题的引用,其中有一行额外的配置

"insertRequire: ['main'],"
[编辑]

我使用的是Visual Studio 2013 Pro Update 2,没有插件

我使用以下url从GitHub上的DurandalAuth克隆了最新项目:

git clone https://github.com/yagopv/DurandalAuth.git
您可以在此处看到该项目:

我在visual studio中的生成后事件中使用了此选项:

cd $(ProjectDir)
weyland build
我的构建输出可在此粘贴站找到:


我所做的每件事都没有对原始项目进行任何修改,就像从Git克隆中看到的一样。

当您查看构建输出时,您会发现以下几行代码

呃!jshint在linting时发现52个问题

你也会发现像这样的线条

警告:正在删除未使用的

虽然这些不是关于执行的showtopper,但它们会导致构建返回失败

这就是VisualStudio报告生成失败的原因

编辑

我用ReSharper做了一些大的清理

要完全忽略.js文件,可以从weyland-config.js中删除.task.jshint

还要提到的是,您的main-build.js并没有因为附带的weyland-config.js而变得丑陋

在第一个.task.uglify中,为App/mail-build.js添加一个排除项,并添加一个新的.task.uglify作为最后一个任务。main-build.js的路径必须以../作为前缀,因为该路径是相对于生成文件夹的

在web.config中的when debug=false中也发现了问题,但尚未解决该问题

我的weyland-config.js如下所示:

exports.config = function(weyland) {
    weyland.build('main')
        .task.jshint({
            include: 'App/**/*.js',
            exclude: 'App/main-built.js'
        })
        .task.uglifyjs({
            include: ['App/**/*.js', 'Scripts/durandal/**/*.js'],
            exclude: 'App/main-built.js'
        })
        .task.rjs({
            include:['App/**/*.{js,html}', 'Scripts/durandal/**/*.js'],
            loaderPluginExtensionMaps:{
            '.html':'text'
        },
        rjs: {
            name:'../Scripts/almond-custom', //to deploy with require.js, use the build's name here instead
            insertRequire: ['main'], //not needed for require
            baseUrl: 'App',
            wrap:true, //not needed for require
            paths: {
                'text': '../Scripts/text',
                'durandal': '../Scripts/durandal',
                'plugins': '../Scripts/durandal/plugins',
                'transitions': '../Scripts/durandal/transitions',
                'knockout': '../Scripts/knockout-3.1.0',
                'bootstrap': '../Scripts/bootstrap',
                'jquery': '../Scripts/jquery-2.1.1',
                'jquery.utilities': '../Scripts/jquery.utilities',
                'toastr': '../Scripts/toastr',
                'stashy': '../Scripts/stashy'
            },
            inlineText: true,
            optimize: 'none',
            pragmas: {
                build: true
            },
            stubModules: ['text'],
            keepBuildDir: true,
            out:'App/main-built.js'
        }
    })
    .task.uglifyjs({
        include: ['../App/main-built.js']
    });
}

您使用的是哪个版本的visual studio?当后期生成步骤失败时,生成输出(来自visual studio的“输出”选项卡)中列出了什么?看起来它将两行代码视为一个调用。当你在VisualStudio中查看项目属性时,它是否会在不同的行上显示它们?那么,我们怎么能将该特定消息视为失败呢?我的构建环境是自动化的,构建失败会阻止部署。很遗憾,很久以前我在这个问题上得到100个代表的赏金时,你不在。最后,我从System.Web.Optimization构建了自己的包,这基本上就是Weyland所做的。我会看看我能为这条消息做些什么。