web-dev-qa-db-fra.com

Comment arrêter les fichiers localisés microsoft.codeanalysis. *. Ressources.dll des fichiers d'être publiés par ASP.NET CORE?

Lorsque je publie un projet ASP.NET CORE 3.0, je reçois quelques dossiers localisés où les 4 assemblages affichés sont dans chacun de ces dossiers. Je ne sais pas pourquoi ces dossiers et fichiers sont inclus. Aucun de mes packages référence a CodeAnalysis paquet.

J'ai ajouté <PreserveCompilationContext>false</PreserveCompilationContext> Dans le fichier CSPROJ, mais cela n'a pas aidé. Y a-t-il un moyen de les exclure?

enter image description here

enter image description here

15
Tony_Henrich

Dans mon cas, la source de ces dossiers localisées provenait du paquet Microsoft.aspnetcore.mvc.razor.Runtimecompilation. Il a une dépendance sur Microsoft.Codeanalysis.Razor. Vous pouvez en savoir plus sur le but du colis ici: https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.1

Vous ne pouvez pas simplement exclure un actif lorsque vous essayez de profiter du colis. Mon travail consistait à inclure conditionnellement la référence du paquet chaque fois que le projet est en mode débogage. Référence du paquet conditionnel

J'ai ensuite utilisé une directive #IF pré-processeur pour exécuter de manière conditionnelle le code qui permet la compilation d'exécution Razor. Directive de pré-processeur Directive Razor Runtime Compilation

Remarque: Vous devrez peut-être supprimer votre dossier BIN pour voir les dossiers supprimés après une construction. En outre, assurez-vous de construire sous la configuration de solution correcte.

J'ai pu trouver un problème GitHub décrivant ce scénario exact, mais malheureusement, il n'a jamais été résolu. https://github.com/dotnet/extensions/issues/2247

0
kangaroosky