Próbuję utworzyć aplikację internetową przy użyciu programu Visual Studio 2015 i .NET 4.5.1. Kiedy publikuję witrynę, Visual Studio tworzy folder o nazwie roslyn
.
Wiem, że jest używany do kompilowania kodu w locie, ale niestety mój dostawca hostingu nie pozwala mi na uruchomienie kompilatora na swoim serwerze.
Jak opublikować witrynę bez roslyn
podobnej poprzedniej wersji Visual Studio?
EDYCJA: Otrzymałem ten błąd podczas próby uzyskania dostępu do mojej witryny.
Wygląda na to, że usługi IIS próbują się uruchomić, roslyn\csc.exe
ale moje konto użytkownika nie ma na to uprawnień. W poprzedniej wersji programu Visual Studio ten błąd nie pojawia się.
Odpowiedzi:
Właśnie stanąłem przed tym samym problemem. Podczas tworzenia nowego projektu sieci Web dwa pakiety NuGet są automatycznie dodawane do projektu. Jeśli je usuniesz, problem powinien zostać rozwiązany. Nazwy pakietów to: „ Microsoft.CodeDom.Providers.DotNetCompilerPlatform ” i „ Microsoft.Net.Compilers ”.
źródło
Import
węzły,Target
węzły (ZapewnijNugetPackageBuildImports) iReference
węzły. Usuń także<system.codedom>
węzeł swojego pliku web.config.Miałem ten sam problem. Postępowałem zgodnie z instrukcjami tutaj . Gruntownie:
Odinstaluj pakiet
W ustawieniach swojego profilu publikowania odznacz „Zezwalaj na aktualizację prekompilowanej witryny”. Możesz to znaleźć w Ustawienia> Prekompilacja podczas publikowania> Konfiguruj
źródło
Po przeszukaniu tego samego wydanego, z którym się spotykam, właśnie tu przyszedłem. Przeczytałem powyższą odpowiedź, która jest poprawna.
Daję odpowiedź, ponieważ Oto dobry artykuł do wyjaśnienia:
To także bardzo dobry artykuł o historii tego exe
źródło
Po niezliczonych wysiłkach ... i według tej strony . Uważam, że można użyć
/p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false
w programie MSBuild do przekształcenia pliku web.config, co obejmuje również kompilator Roslyn w kompilacji. Dane wyjściowe są takie same, jak w przypadku publikowania w programie Visual Studio w systemie plikówźródło
W repozytorium Roslyn jest otwarty błąd dotyczący tego problemu.
W moim przypadku wszystko, co musiałem zrobić, to obniżyć dll
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
z wersji1.0.6
do1.0.5
.źródło
Miałem ten sam problem we wrześniu 2016 r., Kiedy przejąłem istniejący program ASP.NET. Okazało się, że w różnych projektach rozwiązania było zainstalowanych wiele wersji dwóch pakietów kompilatora, o których wspomniał Kemal.
Więc najpierw zaktualizowałem, aby uzyskać takie same. VS nie informuje, że aktualizacje są dostępne w tym scenariuszu (a może je przegapiłem?)
Następnie musiałem ponownie uruchomić VS2015, aby pakiety zostały poprawnie wyczyszczone.
źródło