web-dev-qa-db-de.com

Website ohne Roslyn veröffentlichen

Ich versuche, eine Webanwendung mit Visual Studio 2015 und .NET 4.5.1 zu erstellen .. Wenn ich die Website veröffentliche, erstellt Visual Studio einen Ordner mit dem Namen roslyn.

 enter image description here

Ich weiß, dass er verwendet wird, um Code schnell zu kompilieren, aber mein Hosting-Provider erlaubt es mir leider nicht, den Compiler auf seinem Server auszuführen.

Wie veröffentlichen Sie die Website ohne roslyn wie in früheren Versionen von Visual Studio?

BEARBEITEN: Ich habe diese Fehlermeldung erhalten, als ich versuchte, auf meine Website zuzugreifen.

 enter image description here

Es scheint, dass IIS versucht, roslyn\csc.exe auszuführen, aber mein Benutzerkonto hat keine Berechtigung dazu. Bei einer früheren Version von Visual Studio wird dieser Fehler nicht angezeigt.

76
Niyoko Yuliawan

Ich habe gerade das gleiche Problem gehabt. Wenn Sie ein neues Webprojekt erstellen, werden Ihrem Projekt automatisch zwei Nuget-Pakete hinzugefügt. Wenn Sie sie entfernen, sollte Ihr Problem gelöst sein. Paketnamen sind: " Microsoft.CodeDom.Providers.DotNetCompilerPlatform " und " Microsoft.Net.Compilers ".

163
Kemal Kefeli

Ich hatte das gleiche Problem. Folge den Schritten von hier . Grundsätzlich gilt:

  1. Deinstallieren Sie das Paket

    Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform <Your Web API project name>
    
  2. Deaktivieren Sie in den Veröffentlichungsprofileinstellungen die Option "Aktualisierbare vorkompilierte Site zulassen". Sie finden dies unter Einstellungen> Vorkompilieren während der Veröffentlichung> Konfigurieren

10
Midas

Nach unzähligen Anstrengungen .... und gemäß dieser Website . Ich finde, dass Sie /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false in MSBuild verwenden können, um web.config zu transformieren. Dazu gehört auch der roslyn-Compiler im Build. Die Ausgabe ist dieselbe wie bei der Veröffentlichung in Visual Studio im Dateisystem

2
code4j

Zu diesem Problem gibt es einen open Bug im Roslyn-Repository.

In meinem Fall musste ich nur die DLL Microsoft.CodeDom.Providers.DotNetCompilerPlatform von Version 1.0.6 auf 1.0.5 herabstufen.

2
Felipe Miosso

Nachdem ich das gleiche Gesicht gesucht hatte, kam ich einfach hierher. Ich habe die obige Antwort gelesen, die richtig ist.

Ich gebe die Antwort, wegen Hier ist der gute Artikel zu erklären:

  1. Warum hat der Veröffentlichungscode dieses Exe sowie eine Entwicklungsumgebung?
  2. Was ist der Nutzen und wie kann man ihn entfernen?

Dies ist auch der sehr gute Artikel über die Geschichte dieses Exe

1
Ajay2707

Ich hatte das gleiche Problem im September 2016, als ich ein vorhandenes ASP.NET-Programm übernahm. Ich habe festgestellt, dass mehrere Versionen der beiden von Kemal erwähnten Compiler-Pakete in verschiedenen Projekten der Lösung installiert waren.

Zuerst habe ich ein Update gemacht, um sie gleich zu erhalten. VS sagt Ihnen nicht, dass in diesem Szenario Updates verfügbar sind (oder habe ich sie vielleicht verpasst?)

Ich musste VS2015 dann neu starten, damit die Pakete ordnungsgemäß bereinigt wurden.

0