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
.
Ich weiß, dass es verwendet wird, um Code im laufenden Betrieb zu kompilieren, aber leider erlaubt mir mein Hosting-Anbieter nicht, den Compiler auf seinem Server auszuführen.
Wie kann ich die Website ohne roslyn
vorherige Version von Visual Studio veröffentlichen?
BEARBEITEN: Ich habe diesen Fehler beim Zugriff auf meine Website erhalten.
Es scheint, dass IIS versucht, etwas auszuführen, roslyn\csc.exe
aber mein Benutzerkonto hat keine Berechtigung dazu. In früheren Versionen von Visual Studio wird dieser Fehler nicht angezeigt.
visual-studio
visual-studio-2015
roslyn
Niyoko Yuliawan
quelle
quelle
Antworten:
Ich habe gerade das gleiche Problem konfrontiert. 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 ".
quelle
Import
Knoten,Target
Knoten (EnsureNugetPackageBuildImports) undReference
Knoten umfassen. Entfernen Sie auch den<system.codedom>
Knoten Ihrer web.config.Ich hatte das gleiche Problem. Folgen Sie den Schritten von hier . Grundsätzlich:
Deinstallieren Sie das Paket
Deaktivieren Sie in Ihren Veröffentlichungsprofileinstellungen das Kontrollkästchen "Vorkompilierte Site aktualisieren lassen". Sie finden dies unter Einstellungen> Beim Veröffentlichen vorkompilieren> konfigurieren
quelle
Nachdem ich das gleiche ausgestellte Gesicht gesucht hatte, kam ich gerade hierher. Ich habe die obige Antwort gelesen, die richtig ist.
Ich gebe die Antwort, denn hier ist der gute Artikel zu erklären:
Dies ist auch der sehr gute Artikel über die Geschichte dieser Exe
quelle
Nach unzähligen Anstrengungen .... und laut dieser Website . Ich finde, dass Sie
/p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false
in MSBuild verwenden können, um web.config zu transformieren, dies schließt auch den Roslyn-Compiler in den Build ein. Die Ausgabe entspricht der Ausgabe, die Sie durch Veröffentlichen in Visual Studio im Dateisystem erhaltenquelle
Es gibt einen offenen Fehler im Roslyn-Repository zu diesem Problem.
In meinem Fall musste ich nur die DLL
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
von Version1.0.6
auf downgraden1.0.5
.quelle
Ich hatte das gleiche Problem im September 2016, als ich ein vorhandenes ASP.NET-Programm übernahm. Ich fand heraus, dass mehrere Versionen der beiden von Kemal erwähnten Compiler-Pakete in verschiedenen Projekten der Lösung installiert waren.
Also habe ich zuerst aktualisiert, um sie gleich zu bekommen. VS sagt Ihnen nicht, dass Updates in diesem Szenario verfügbar sind (oder habe ich sie verpasst?)
Ich musste dann VS2015 neu starten, damit die Pakete ordnungsgemäß bereinigt wurden.
quelle