2017-10-16 26 views
0

J'ai une simple application .net core 2.0 avec angulaire 2. Pour héberger mon application, j'utilise Azure Web Service, également mon code source publié sur GitHub. Et toujours quand je fais des changements sur la branche master c'est automatiquement le déploiement sur Azure.Angular 2 et .net core 2.0 - problème avec déploiement automatique sur Azure

Cela fonctionne très bien lorsque je fais des changements sur C#, mais quand je fais des changements sur Angular 2 + TS codec alors mon code ne peut pas être déployé avec succès. Et je ne sais pas pourquoi!

J'ai pris à chaque fois la même erreur comme (ne peut pas trouver et déplacer main.84325e8f477352023e49.bundle.js fichier, car il n'existe pas)

Mais quand je vais au tableau de bord Azure et cliquez - redéployer à nouveau c'est très bien. J'utilise Angular-CLI pour construire l'application Angular 2. Aussi, j'ai changé mon fichier * .csproj pour exécuter la commande Angular-CLI avant de construire l'application .net core.

<Target Name="Build Angular" BeforeTargets="Build" Condition="'$(Configuration)' == 'Release'"> 
    <Message Text="* * * * * * NPM * * * * * *" Importance="high" /> 
    <Exec Command="npm install" /> 
    <Message Text="* * * * * * Building Angular App * * * * * *" Importance="high" /> 
    <Exec Command="npm run build" /> 
    </Target> 

NPM run construction: - il est par défaut commande angulaire-cli pour construire l'application angulaire avec le processus de AOT ng build --prod

Je trouve de nombreux articles quand les gens utilisent Visual Studio Team Services et créez un processus de déploiement pour Azure, mais je ne peux pas l'utiliser. Je dois utiliser le seul déploiement de GitHub.

De plus, le déploiement prend beaucoup de temps comme 15-20 min. Et c'est étrange car local c'est beaucoup plus rapide comme 1-2 min.

Toute idée, comment améliorer le processus de déploiement et résoudre ce problème avec le déploiement automatique de la branche maître sur GitHub.

Répondre

0

Selon votre description, j'ai créé une démo de test de mon côté. Cela fonctionne bien. J'ai utilisé un gabarit angulaire net core 2.0 dans le studio visuel.

enter image description here

Puis-je utiliser git pour déployer l'application tout à git et permettre à l'continue de déployer dans l'application web d'azur.

Enfin, je édite le fichier ts et j'appuie sur le github.

Le résultat comme ci-dessous:

Prend 521 secondes:

enter image description here

Je ne change pas et codes dans csporj. Donc, je suggère que vous pourriez essayer d'utiliser vs modèle angulaire noyau net pour construire votre projet.

+0

OK, mais le modèle angulaire core 2.0 par défaut dans Visual Studio utilise le pack Web et le rendu côté serveur. Dans mon cas, j'ai utilisé l'API Angular-CLI et .net comme API pour le front end. –

+1

Si vous voulez améliorer la vitesse de npm, je suggère que vous pourriez essayer d'ajouter un SCM_REPOSITORY_PATH appsetting avec D: \ local \ repository. Cela accélérera le déploiement continu. Plus de détails, vous pouvez vous référer à ce [article] (https://ppolyzos.com/2017/01/15/how-to-improve-continuous-deployment-speed-in-azure-app-service/). –

+0

Super article merci beaucoup, je vais essayer de le faire. –

0

Je sais que lorsque vous déployez à partir de Visual Studio, la cible Build est exécutée deux fois. Alors peut-être dans votre cas, votre cible est exécutée deux fois aussi.

L'erreur "impossible de trouver et de déplacer le fichier" peut être liée à la même raison. Lors de la publication, la tâche Publier énumère tous les fichiers disponibles au tout début. Puis il appelle la deuxième version qui efface les fichiers de la première version.

Je vous recommande d'examiner l'exemple lié suivant d'une cible <Target Name="NgBuildAndAddToPublishOutput" AfterTargets="ComputeFilesToPublish">.