0

Dans .NET Core 2 application API Web, Publier dans un dossier en fonction des produits MS VS 2017:Suppression PrecompiledViews.dll à partir ASP.Net Core 2 API

<ProjectAssembly>.PrecompiledViews.dll 
<ProjectAssembly>.PrecompiledViews.pdb 

Offical docs dit que PrecompiledViews liés à precompiling Razor Views, mais mon API ne contient pas de vues ou de fichiers statiques, juste des points de terminaison REST qui renvoient json. En utilisant le réflecteur Net, j'ai trouvé le PrecompiledViews.dll vide.

enter image description here

Je supprimé PrecompiledViews.dll et testé mon API et il semble fonctionner très bien sans aucun avertissement ou exceptions.

Est-il prudent de supprimer PrecompiledViews.dll et pdp si l'API n'utilise pas de vues rasoir? Si oui, existe-t-il une option dans VS 2017 pour arrêter la publication de PrecompiledViews inutilisés?

+1

Nous venons d'ouvrir le numéro GH https://github.com/aspnet/MvcPrecompilation/issues/211 pour désactiver la précompilation sur les sites sans vue –

Répondre

4

Vous avez raison, l'étape de précompilation émet toujours un assemblage et ne vérifie pas s'il existe réellement des vues. Vous pouvez désactiver l'étape de pré-compilation en mettant ceci dans votre fichier csproj:

<PropertyGroup> 
    <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish> 
</PropertyGroup> 

Ce sera alors activer la préservation normale de contexte Copilation (refs du sous-dossier). Pour le désactiver également, ajoutez

<PreserveCompilationContext>false</PreserveCompilationContext> 

au groupe de propriétés.

+0

Test réussi, bonne chose! –

+0

Oh non, ce n'est pas assez bon, il produit le sous-dossier 'refs' avec 148 fichiers! Avant de changer csproj comme vous l'avez mentionné, aucun sous-dossier 'refs' n'est produit. –

+0

l'a ajouté à la reponse –