J'ai créé un projet de base ASP.NET avec angulaire. Donc, c'est 1 application monolotique au lieu de deux applications. P>
Mon problème est le suivant: P>
Quel paquet / dossier dois-je choisir à déployer? le dossier dist ou le fichier zip? Ou le dossier nommé "artefactensestest"? P>
3 Réponses :
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 code> dans une tâche différente, mais le principe est identique. P>
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?
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'
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
Quel paquet / dossier dois-je choisir à déployer? le dossier dist ou le fichier zip? Ou le dossier nommé "artefactensestest"? P> blockQuote>
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: p>
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. P>
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.