web-dev-qa-db-fra.com

Publier un site Web sans roslyn

J'essaie de créer une application Web à l'aide de Visual Studio 2015 et .NET 4.5.1 . Lorsque je publie le site Web, visual studio crée un dossier nommé roslyn.

 enter image description here

Je sais que c'est utilisé pour compiler le code à la volée, mais malheureusement, mon fournisseur d'hébergement ne me permet pas d'exécuter le compilateur sur leur serveur.

Comment publier le site Web sans roslyn comme la version précédente de Visual Studio?

EDIT: J'ai eu cette erreur en essayant d’accéder à mon site web.

 enter image description here

Il semble que IIS essaie d'exécuter roslyn\csc.exe mais mon compte d'utilisateur n'est pas autorisé à le faire. Avec la version précédente de Visual Studio, cette erreur ne s'affiche pas.

76
Niyoko Yuliawan

Je viens de faire face au même problème. Lorsque vous créez un nouveau projet Web, deux packages de nugets sont automatiquement ajoutés à votre projet. Si vous les supprimez, votre problème devrait être résolu. Les noms de package sont: " Microsoft.CodeDom.Providers.DotNetCompilerPlatform " et " Microsoft.Net.Compilers ".

163
Kemal Kefeli

J'ai eu le même problème. Suit les étapes de ici . Fondamentalement:

  1. Désinstaller le paquet

    Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform <Your Web API project name>
    
  2. Dans les paramètres de votre profil de publication, décochez "Autoriser la mise à jour du site précompilé". Vous pouvez le trouver sous Paramètres> Précompiler lors de la publication> configurer

10
Midas

Après d'innombrables efforts .... et d'après ce site Web . Je trouve que vous pouvez utiliser /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false dans MSBuild pour transformer web.config, ceci inclut également le compilateur Roslyn dans la construction. Le résultat est identique à celui obtenu en publiant dans Visual Studio dans le système de fichiers.

2
code4j

Il existe un open bug sur le référentiel roslyn concernant ce problème.

Dans mon cas, tout ce que je devais faire était de rétrograder la DLL Microsoft.CodeDom.Providers.DotNetCompilerPlatform de la version 1.0.6 à 1.0.5.

2
Felipe Miosso

Après avoir recherché le même problème que je suis face à face, je suis juste venu ici. J'ai lu la réponse ci-dessus qui est juste.

Je donne la réponse, à cause de Ici est le bon article pour expliquer:

  1. Pourquoi le code de publication a-t-il ce fichier EXE et cet environnement de développement?
  2. Quel est l'avantage et comment supprimer?

Ceci est également le très bon article, sur l'histoire de cet exe

1
Ajay2707

J'ai eu le même problème en septembre 2016 lorsque j'ai repris un programme ASP.NET existant. J'ai constaté qu'il y avait plusieurs versions des deux packages de compilateur mentionnés par Kemal installées dans différents projets de la solution.

Donc, premièrement, j'ai mis à jour pour obtenir les mêmes. VS ne vous dit pas que les mises à jour sont disponibles dans ce scénario (ou peut-être que je les ai ratées?)

J'ai ensuite dû redémarrer VS2015 pour que les paquets soient correctement nettoyés.

0
Rob Von Nesselrode