0
votes

ASP.NET CORE + artefact de déploiement angulaire avec pipeline de déclenchement Devops Azure Devops

J'ai créé un projet de base ASP.NET avec angulaire. Donc, c'est 1 application monolotique au lieu de deux applications.

Mon problème est le suivant:

 Entrez la description de l'image ici

Quel paquet / dossier dois-je choisir à déployer? le dossier dist ou le fichier zip? Ou le dossier nommé "artefactensestest"?


2 commentaires

Que diriez-vous de la question? La réponse ci-dessous résolut-t-elle votre question, sinon, s'il vous plaît laissez-moi savoir les dernières informations sur ce numéro?


Il ne l'a pas résolu car il y a un autre problème. Mais j'ai fait un problème différent pour cela. Je vais fermer celui-ci.


3 Réponses :


1
votes

Vous devez publier votre application ASP Net Core à la place.

Voici un exemple de fichier de construction de l'un de nos projets. Ceci est pour le noyau ASP.NET uniquement. Pour les applications angulaires, nous faisons des choses supplémentaires telles que Run NPM Installez dans une tâche différente, mais le principe est identique. xxx


7 commentaires

Merci de votre aide. Mais que se passe-t-il avec le dossier dist?


Hmm Avez-vous essayé de publier votre application localement? Vous pouvez voir à quoi ressemble la sortie


"Ceci est pour ASP.NET CORE UNIQUEMENT. Pour les applications angulaires, nous faisons des choses supplémentaires telles que Run NPM Installez dans une tâche différente". Mais c'est une application monolotique. L'application ASP.NET CORE fait des choses comme NG Build - Prod, etc ... alors pourquoi écrire plus de code pour cela dans le fichier YAML?


@Myil seulement pour les mettre dans des tâches de construction individuelles. Cela aide à déterminer quelles tâches prennent beaucoup de temps. Par exemple, la mise à jour de NPM a pris beaucoup de temps afin que nous appliquions la mise en cache à un moment donné; docs.microsoft.com/ EN-US / AZURE / Devops / Pipelines / Libération / ... Autre que cette publication s'occupera effectivement de tout.


Puis-je vous poser une autre question? Pourquoi publier plusieurs de ces projets? Dans ma buildpipeline, je publie comme ceci: - Taste: DotNetCorecli @ 2 entrées: Commande: 'Publier' PublishWebProjections: Véritables arguments: '- Configuration $ (Buildconfiguration) --Output $ (Build.ArtifacTalStagerdirectory)' ZipAfterPublish: True


@Myil sûr de votre pouvoir! Il s'agit d'un échantillon que j'ai pris à partir d'un projet, nous avons le serveur, un client travaille (pour hangfire.io) et un client pour ce serveur. Donc, il y a 3 applications (rappelez-vous que cela n'utilise pas angulaire par dire, mais j'ai adapté ce fichier .yml à mon projet d'application angulaire - mais je ne peux pas poster cela). Ces applications client et service ne sont pas ASP.NET CORE - Juste des applications normales .NET CORE. Vous pouvez simplement publier tous les webapps comme vous le faites déjà.


Je viens de placer le dossier dist et le dossier DotNet Publier dans un fichier ZIP et déployé sur un service d'application AZURE 3.1 de Linux ASP.NET CORE 3.1, mais cela ne fonctionne pas .. Comment le centre de l'application peut-il savoir quoi faire avec le zip et les deux Dossiers?



0
votes

J'ai fait cette implémentation à l'aide de DotNet Build and NPM Build. Premièrement, effectuez une version NPM et générez un dossier dist. Ensuite, faites une construction ASP.NET. Une fois la construction terminée, copiez les fichiers pour bâtir.ArtifacTactStagerdirectory. De même pour NPM DIST Copiez le dossier du répertoire de travail pour organiser le répertoire d'intermédiaire de votre dossier dans lequel vous souhaitez garder la même chose. Ensuite, vous pouvez glisser tout le répertoire de la stadification et publier la même chose. Vous trouverez ci-dessous l'échantillon de code. Au lieu de MSBUILD, vous pouvez le remplacer par la tâche DotNetCore @ 2

    trigger:
        branches:
          include:
          - master
      
    pool:
      name: Azure Pipelines
      vmImage: 'windows-2019'
      demands:
        - npm
        - msbuild
        - visualstudio
    
    variables: 
      configuration: release
      BuildConfiguration: "Release"
      platform: x64
    
    stages:
    - stage: Build
      jobs:
      - job: Build
        steps:
        - task: NuGetToolInstaller@0
          displayName: 'Use NuGet 4.4.1'
          inputs:
            versionSpec: 4.4.1
        - task: NuGetCommand@2
          displayName: 'NuGet restore'
          inputs:
            restoreSolution: '$(Parameters.solution)'
            vstsFeed: '34356gsgv643a'
        - task: Npm@1
          displayName: 'npm install'
          inputs:
            workingDir: angularfoldername
            verbose: false
        - task: Npm@1
          displayName: 'npm custom'
          inputs:
            command: custom
            workingDir: angularfoldername
            verbose: false
            customCommand: 'run build'
        - task: MSBuild@1
          displayName: 'Build solution dotnet.csproj'
          inputs:
            solution: dotnet.csproj
            msbuildArguments: '/t:build /p:outputpath="$(build.artifactstagingdirectory)" /property:langversion=latest'
        - task: DotNetCoreCLI@2
          displayName: Test
          inputs:
            command: test
            projects: '$(Parameters.TestProjects)'
            arguments: '--configuration $(BuildConfiguration)'
        - task: CopyFiles@2
          displayName: 'Copy Files to: $(build.artifactstagingdirectory)\_PublishedWebsites\dotnet\angularfolder'
          inputs:
            SourceFolder: 'angularfoldername'
            Contents: '**'
            TargetFolder: '$(build.artifactstagingdirectory)\_PublishedWebsites\dotnet\angularfoldername'
           - task: PublishBuildArtifacts@1
          displayName: 'Publish Artifact: drop'
          inputs:
            PathtoPublish: '$(Build.ArtifactStagingDirectory)\_PublishedWebsites'


2 commentaires

Que se passe-t-il lorsque j'ai zip le dossier dist et le dossier ASP.NET CORE? Je le déploie, puis? Comment le service Web Azure va-t-il savoir quoi faire avec les deux?


Si je comprenais correctement, vous essayez de convertir les deux dossiers de manière indépendante. Oui, cela est possible cependant, dans ce cas, le déploiement se produira séparément. Exemple: vous déploiement du backend (dotnetcore). Maintenant, lors du déploiement FronTend, vous définirez le chemin du répertoire virtuel et Azure Devops déploierez le dossier (DIST). Il se décompresser pendant le déploiement cependant, si nous le déploiions ensemble, il n'y a pas besoin de zip dist séparément



0
votes

Quel paquet / dossier dois-je choisir à déployer? le dossier dist ou le fichier zip? Ou le dossier nommé "artefactensestest"?

Je suis d'accord avec Prasun. Nous pourrions copier le dossier DIST de NPM du répertoire de travail vers le répertoire de stabilisation, puis zip thumb up thumb down [

Alternativement, nous pourrions ajouter deux artefacts dans le pipeline de déclenchement pour déployer un dossier dist dist et un fichier zip:

 Entrez la description de l'image ici

 Entrez la description de l'image ici

Vous pouvez vérifier ce document Créez un pipeline de construction pour les applications angulaires et asp.net Core avec des services d'équipe Visual Studio pour certains détails.


0 commentaires