2016-05-14 1 views
1

J'ai simple ASP.NET 5 Web Api Application, qui a été faite en utilisant yo aspnet. Je travaille sur Windows 10 en utilisant Visual Studio Code (je ne veux pas utiliser Visual Studio). Je veux simuler le développement à partir d'un environnement non Windows.ASP.NET 5 roslyn dynamique compilation

Comme je sais roslyn compilateur devrait compiler dynamiquement les fichiers modifiés. Mais quand je cours mon application avec la commande suivante dnu restore && dnx --watch web l'application commence. Mais si je puis (dnx --watch web est toujours en cours d'exécution) modifier une petite partie du code et rafraîchir la page web, notant est changé.

Avant:

// GET: api/values 
    [HttpGet] 
    public IEnumerable<string> Get() 
    { 
     return new string[] { "value1", "value2" }; 
    } 

Après:

// GET: api/values 
    [HttpGet] 
    public IEnumerable<string> Get() 
    { 
     return new string[] { "value1", "value2", "value3" }; 
    } 

je vérifier si cela est la cause de la mise en cache, mais ce n'est pas. Qu'est-ce que j'oublie ici?

REMARQUE:

J'ai remarqué que cela pourrait être la cause du serveur web, j'utilise Kestrel. Il fait partie de mon project.json

"commands": { 
    "web": "Microsoft.AspNet.Server.Kestrel" 
    }, 

    "frameworks": { 
    "dnx451": { }, 
    "dnxcore50": { } 
    } 
+0

Juste pour vous assurer: avez-vous sauvé réellement le fichier? – svick

+0

Bonne question, oui je l'ai fait :) –

Répondre

1

je solution temporaire à ce problème, en utilisant gulp.js:

// gulpfile.js 
var gulp = require('gulp'); 
var bg = require("gulp-bg"); 

var dnxweb = null; 
gulp.task('dnx:web:start', dnxweb = bg("dnx", "web")); 
gulp.task('dnx:web:stop',() => { 
    if (!dnxweb) 
     return; 
    dnxweb.setCallback((proc) => { 
     if (proc.errorcode != 0) 
      proc.exit(proc.errorcode); 
    }); 
    dnxweb.stop(); 
}); 

gulp.task('watch',() => { 
    gulp.watch('**/*.cs', ['dnx:web:stop', 'dnx:web:start']); 
}); 

gulp.task('build', ['dnx:web:start', 'watch']);