Mam do czynienia z dziwnym problemem z kompilatora Roslyn. Czasami, gdy buduję rozwiązanie, napotykam dziwny problem na liście błędów, który nie pozwala mi na zbudowanie rozwiązania. Tutaj jest błąd:Nie można usunąć bin roslyn VBCSCompiler.exe - Odmowa dostępu
Severity Code Description Project File Line Suppression State Error Unable to copy file "D:\Sealogical New Website\SealogicalWebsite\packages\Microsoft.Net.Compilers.1.0.0\tools\csc.exe" to "bin\roslyn\csc.exe". Access to the path 'bin\roslyn\csc.exe' is denied. SealogicalWebsite
Severity Code Description Project File Line Suppression State Error Unable to copy file "D:\Sealogical New Website\SealogicalWebsite\packages\Microsoft.Net.Compilers.1.0.0\tools\VBCSCompiler.exe" to "bin\roslyn\VBCSCompiler.exe". Access to the path 'bin\roslyn\VBCSCompiler.exe' is denied. SealogicalWebsite
staram się oczyścić i odbudować to rozwiązanie, ale nie działa ponownie.
Próbowano usunąć pliki ręcznie, ale znowu pokazuje błąd wskazując na nie mam odpowiednich uprawnień, aby to zrobić:
Próbowałem usuwając z
CMD
ale znowu pokazuje ten sam błąd:
Jedynym sposobem na usunięcie plików wygenerowanych przez roslyn jest ponowne uruchomienie komputera i po ponownym uruchomieniu mogę je usunąć ręcznie bez problemu.
Jestem administratorem na moim komputerze, więc nie ma problemu z tym, jak sądzę.
Ten problem wydaje się stać w Visual Studi0 2015 i Visual Studio 2017
I dont like ponownym uruchomieniu PC 4-5 razy dziennie lub więcej to dlaczego pytam tutaj.
Niektóre inne szczegóły:
ja jestem tym, który stworzył ten projekt, więc teoretycznie nie powinno być problemu, aby zrobić tę akcję.
Po utworzeniu projektu uruchomiłem Visual Studion w trybie administratora , tak jak teraz.
- Używam szablonu ASP.MVC 5 w moim projekcie.
- Pliki, których nie można usunąć, to
bin/roslyn/csc
ibin/roslyn/VBCSCompiler
.
mogłem znaleźć rozwiązanie, aby usunąć tę część od web.config więc nie generuje te pliki:
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
Jednak rozwiązanie to spowodować problemy z nowym C# 6 funkcji, więc nie mogę usunąć ta sekcja .....
Ponadto próbowałem to polecenie cmd, aby sprawdzić, czy jest to proces blokowania tego pliku, ale mimo to nie pokazuje mi każdy proces na wszystkich:
C:\WINDOWS\system32>tasklist /m D:\SealogicalNewWebsite\SealogicalWebsite\SealogicalWebsite\bin\roslyn\csc.exe
INFO: No tasks are running which match the specified criteria.
Czy ktoś wie, jak poradzić sobie z tym dziwnym problemem?
Prawdopodobnie działa proces, który blokuje te pliki. Sprawdź Menedżera zadań, aby zobaczyć, czy możesz je zabić. Ponadto, chyba że faktycznie używasz VB, możesz usunąć 'language =" vb ... 'linię –
@CamiloTerevinto Zauważam proces używający VBCSCompiler, który zakończyłem jako zadanie, ale znowu nie działa. zadania, które mogłem pomyśleć o używaniu tych plików, ale bez powodzenia –
Co stanie się, jeśli ponownie pobierzesz pakiet NuGet? (może go zaktualizujesz?) –