0
votes

Pourquoi mon fichier ApplicationInsights.config n'est-il pas inclus dans la construction et la publication de MSBuild?

Pourquoi mon fichier ApplicationInsights.config n'est-il pas inclus dans le package de construction lorsque je construis sur le serveur. J'utilise Azure DevOps comme serveur de build et j'utilise une tâche de build standard de Visual Studio. Voici les arguments MSBuild

/ p: DeployOnBuild = true / p: WebPublishMethod = Package / p: PackageAsSingleFile = true / p: SkipInvalidConfigurations = true / p: PackageLocation = "$ (build.artifactstagingdirectory) \" / p: SkipPostSharp = True / p: AutoParameterizationWebConfigConnectionStrings = False


0 commentaires

3 Réponses :


0
votes

Très probablement, le fichier ApplicationInsights.config est défini sur "Copier jamais" dans le fichier de propriétés / projet. Changer ceci en "Copier si plus récent" ou "Copier toujours" devrait faire l'affaire.


3 commentaires

Il était réglé sur "Copier si plus récent" mais je l'ai réglé sur "Copier toujours" et cela n'a eu aucun effet


Je vois (on sait que l'installation Nuget de certains packages AI SDK ne définit pas "Copier si plus récent"). S'agit-il d'une dépendance transitive (c'est-à-dire que l'IA est ajoutée à une bibliothèque et que cette bibliothèque est référencée par le projet Web)? L'ajout explicite dans le projet Web peut aider dans ce cas. Je suppose que cela fonctionne localement dans VS dans votre cas, donc cela peut avoir à voir avec le répertoire artefactsstag, par exemple ApplicationInsights.config n'est pas placé là-bas alors qu'il est disponible localement pour l'empaquetage directement dans le dossier de l'application.


J'ai suivi les instructions pour ajouter l'IA ici: docs .microsoft.com / fr-fr / azure / azure-monitor / app / asp-net Le fichier se trouve à la racine du site, il fonctionne localement pour envoyer des messages à l'IA, mais la publication ne fonctionne pas. si je crée un profil de publication qui publie sur un système de fichiers local, le fichier n'est pas dans le package.



2
votes

Cela peut être dû à un profil de publication d'application incorrect. Le profil de publication local de votre application dans VS devrait idéalement ressembler à ceci:

Cela devrait inclure:

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\" /p:SkipPostSharp=True /p:AutoParameterizationWebConfigConnectionStrings=False

Déchargez votre projet (Faites un clic droit sur Nom du projet -> Décharger le projet) et éditez le fichier .csproj du projet (Faites un clic droit sur Nom du projet -> Editer .csproj)

 <Content Include="ApplicationInsights.config">
   <CopyToOutputDirectory>Always</CopyToOutputDirectory>
 </Content>

Les paramètres mentionnés ci-dessus garantiraient que le fichier ApplicationInsights.config est inclus dans vos artefacts de publication, ce qui ressemblerait à la capture d'écran ci-jointe.

Si ce n'est pas ce que vous voyez, essayez de créer à nouveau un nouveau profil de publication et ajustez-le pour obtenir la configuration attendue. Après avoir vérifié cela, j'ai essayé de publier la même chose à l'aide de la tâche MSBuild dans Azure DevOps et j'ai pu voir ApplicationInsights.config dans le cadre des artefacts de construction de sortie, en fournissant les mêmes paramètres que vous avez mentionnés dans la question ci-dessus:

 <File Include="ApplicationInsights.config">
   <publishTime>11/06/2018 12:27:58</publishTime>
 </File>

J'espère que cela vous aidera!


0 commentaires

0
votes

Cette base de code a été héritée d'une autre équipe. Il s'avère qu'ils ont modifié le fichier projet pour ajouter un nouveau fichier MSBuild Targets. Ces tâches supplémentaires étaient chargées de s'assurer que le fichier de configuration n'était pas ajouté à la sortie.


0 commentaires