Como posso especificar uma ordem de inclusão explícita de ScriptBundle?

Estou experimentando oRecurso MVC4 System.Web.Optimization 1.0 ScriptBundle.

Eu tenho a seguinte configuração:

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        // shared scripts
        Bundle canvasScripts =
            new ScriptBundle(BundlePaths.CanvasScripts)
                .Include("~/Scripts/modernizr-*")
                .Include("~/Scripts/json2.js")
                .Include("~/Scripts/columnizer.js")
                .Include("~/Scripts/jquery.ui.message.min.js")
                .Include("~/Scripts/Shared/achievements.js")
                .Include("~/Scripts/Shared/canvas.js");
        bundles.Add(canvasScripts);
    }
}

e a seguinte visão:

<script type="text/javascript" src="@Scripts.Url(BundlePaths.CanvasScripts)"></script>

OndeBundlePaths.CanvasScripts é"~/bundles/scripts/canvas". Isso renderiza isso:

<script type="text/javascript" src="/bundles/scripts/canvas?v=UTH3XqH0UXWjJzi-gtX03eU183BJNpFNg8anioG14_41"></script>

Até aí tudo bem, exceto~/Scripts/Shared/achievements.js é o primeiro script na fonte agrupada. Depende de cada script incluído antes dele noScriptBundle. Como posso garantir que ele respeita a ordem na qual adiciono instruções de inclusão ao pacote?

Atualizar

Este era um aplicativo relativamente novo da ASP.NET MVC 4, mas referenciava o pacote de pré-lançamento da estrutura de otimização. Eu removi e adicionei o pacote RTM dehttp://nuget.org/packages/Microsoft.AspNet.Web.Optimization. Com a versão RTM com debug = true no web.config,@Scripts.Render("~/bundles/scripts/canvas") processa as tags de script individuais na ordem correta.

Com debug = false no web.config, o script combinado tem o script achievements.js primeiro, mas como é uma definição de função (construtor de objeto) chamada posteriormente, ele é executado sem erros. Talvez o minidificador seja inteligente o suficiente para descobrir dependências?

Eu também tentei oIBundleOrderer implementação que Darin Dimitrov sugeriu com o RTM com as duas opções de depuração e se comportou da mesma forma.

Portanto, a versão minificada não está na ordem esperada, mas funciona.

questionAnswers(7)

yourAnswerToTheQuestion