2017-07-12 15 views
23

Tôi đang đối mặt với một vấn đề lạ từ trình biên dịch roslyn. Đôi khi khi tôi xây dựng giải pháp, tôi gặp phải một vấn đề lạ trong danh sách lỗi không cho phép tôi xây dựng giải pháp. Dưới đây là các lỗi:Không thể xóa bin roslyn VBCSCompiler.exe - Truy cập bị từ chối

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

  1. tôi cố gắng để làm sạch các giải pháp và xây dựng lại nó, nhưng không hoạt động trở lại.

  2. Cố gắng để xóa các tập tin bằng tay nhưng một lần nữa cho thấy một lỗi chỉ ra tôi không có đủ quyền hạn để thực hiện điều này:

  3. Cố gắng xóa từ CMD nhưng một lần nữa cho thấy các lỗi tương tự:

Image when trying to delete files manually

Cách duy nhất để xóa tệp được tạo bằng roslyn là khởi động lại PC và khi khởi động lại, tôi có thể xóa chúng theo cách thủ công mà không gặp sự cố.

Tôi là quản trị viên trong PC của mình nên không có vấn đề gì với tôi.

Vấn đề này dường như xảy ra trong Visual Studi0 năm 2015 và Visual Studio 2017.

Tôi không giống như khởi động lại máy tính 4-5 lần một ngày hoặc nhiều thats tại sao tôi yêu cầu ở đây.

Một số chi tiết khác:

  • Tôi là một người đã tạo ra dự án này vì vậy về mặt lý thuyết nó không phải là một vấn đề để làm hành động này.

  • Khi dự án được tạo lần đầu, tôi đã chạy Visual Studion ở Chế độ quản trị viên như tôi đang làm bây giờ.

  • Tôi đang sử dụng mẫu ASP.MVC 5 trong dự án của mình.
  • Các tệp không bị xóa là bin/roslyn/cscbin/roslyn/VBCSCompiler.

tôi có thể tìm ra một giải pháp để loại bỏ phần này từ web.config vì vậy nó không tạo ra các tập tin:

<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=\&quot;Web\&quot; /optionInfer+" /> 
</compilers> 

Nhưng giải pháp này có thể gây ra vấn đề với mới C# 6 tính năng vì vậy tôi không thể loại bỏ phần này .....

Bên cạnh đó tôi đã cố gắng lệnh này trong CMD để xem nếu có là một quá trình khóa tập tin này nhưng dù sao nó không cho tôi bất kỳ quá trình nào cả:

C:\WINDOWS\system32>tasklist /m D:\SealogicalNewWebsite\SealogicalWebsite\SealogicalWebsite\bin\roslyn\csc.exe 
INFO: No tasks are running which match the specified criteria. 

Có ai biết cách xử lý vấn đề kỳ lạ này không?

+0

Có thể một quá trình đang chạy có các tệp đó bị khóa. Kiểm tra Trình quản lý tác vụ để xem bạn có thể giết họ không. Ngoài ra, trừ khi bạn thực sự sử dụng VB, bạn có thể xóa 'language =" vb ... 'dòng –

+0

@CamiloTerevinto Tôi thông báo một quá trình bằng cách sử dụng VBCSCompiler mà tôi đã kết thúc như một nhiệm vụ nhưng một lần nữa không hoạt động. Các nhiệm vụ tôi có thể nghĩ đến khi sử dụng các tệp đó nhưng không thành công –

+0

Điều gì sẽ xảy ra nếu bạn tải xuống lại gói NuGet? (có thể cập nhật nó?) –

Trả lời

36

Cùng một vấn đề ở đây - giải pháp đối với tôi là đóng VS, task manager mở và kết thúc tất cả các trường hợp của VBCSCompiler.exe như mentionend đây: https://developercommunity.visualstudio.com/content/problem/71302/binroslyn-files-locked-during-build.html

+1

Đôi khi nó hoạt động và đôi khi nó không nhưng tôi sẽ chấp nhận điều này như là câu trả lời tốt nhất kể từ khi tôi không thể tìm thấy bất kỳ câu trả lời tốt hơn này. Cảm ơn :) –

+1

Mỗi liên kết ở trên ngày 09.27.2017 có một bản sửa lỗi dự kiến ​​phát hành trong VS2017 V15.2. – HumbleBeginnings

+0

Gây phiền nhiễu nhưng vẫn là câu trả lời đúng cho tôi! – Jefecito

6

Trong cửa sổ 'Manage NuGET Packages' tôi đã hạ cấp Microsoft.Net.Compilers xuống 2.3.0 (từ 2.3.1) và cũng hạ cấp Microsoft.CodeDom.Providers.DotNetCompilerPlatform xuống 1.0.4 (từ 1.0.5) và thư mục/tệp Roslyn không còn được đánh dấu là chỉ đọc và không còn bị khóa bởi exe nữa.

0

Tôi đã giết chết quá trình trong việc quản lý và xây dựng lại các giải pháp mà được tôi trở lại theo dõi, nhưng tôi thấy rằng thường xuyên xây dựng toàn bộ giải pháp trước khi gỡ lỗi đã dừng tất cả lại với nhau. Tôi hiện đang làm việc trên một ứng dụng n-tier và tôi đã gặp phải điều này nhiều lần một ngày và tôi đã không có vấn đề kể từ khi tôi chắc chắn để xây dựng các ứng dụng sau khi bất kỳ thay đổi và đặc biệt là trước khi gỡ lỗi. Mặc dù, tôi không nhận được lý do tại sao điều này sẽ làm việc kể từ khi VS xây dựng các giải pháp trước khi gỡ lỗi nhưng nó đã thực hiện các trick cho tôi.

Các vấn đề liên quan