289

Tôi liên tục gặp lỗi này trong quá trình xây dựng dự án VS2012 C # của mình

Error   41  Could not copy "obj\Debug\WeinGartner.WeinCad.exe" to
 "bin\Debug\WeinGartner.WeinCad.exe". 
 Exceeded retry count of 10. Failed.    


Error   42  Unable to copy file "obj\Debug\WeinGartner.WeinCad.exe" to
"bin\Debug\WeinGartner.WeinCad.exe". The process cannot access the file
'bin\Debug\WeinGartner.WeinCad.exe' because it is being used by another 
process.    

Bây giờ tôi đã tìm ra rằng giết chết quá trình

Weingartner.WeinCad.vhost.exe

hoạt động (đôi khi) nhưng điều này đang làm tôi lo lắng. Có cách nào để ngăn chặn điều này xảy ra không?

Cài đặt trình gỡ lỗi của tôi là

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

|
  • Đối với tôi, đó là do .exe khởi chạy thủ công trong thư mục Phát hành. Vấn đề là VS không thể sao chép một tệp thực thi vẫn đang chạy. Tôi sẽ cố gắng khắc phục bằng cách dọn dẹp tài nguyên đúng cách để chương trình không bị treo sau nút đóng cửa sổ.

    – Trần Thông Ðạt 08:24:08 08/01/2016
  • Có một bản tóm tắt tốt về vấn đề này với các bước điển hình để giải quyết trong câu hỏi này

    – Đặng Hoàng Hiệp 17:57:01 06/10/2017
306

Tôi đã gặp thông báo lỗi tương tự trong Visual Studio 2013.

Hầu hết, tôi đã thấy rằng tình huống này đã xảy ra khi quá trình gỡ lỗi bị dừng do một ngoại lệ.

Khi Clean + build chưa giải quyết được vấn đề này cho tôi, tôi đã thành công bằng cách làm như sau:

  • Đóng Visual Studio
  • Xóa các binobjthư mục, và
  • Mở lại Visual Studio.

"Lỗi" này đã tồn tại từ Visual Studio 2003.

Cuối cùng, tôi cũng thấy rằng tôi có thể thường xuyên khắc phục vấn đề này bằng cách đổi tên tập tin thực thi và sau đó xóa nó.

|
  • 1

    Tương tự ở đây, VS2013. Thoát, xóa các thành phần xây dựng, khởi động lại -> tất cả đều tốt.

    – Trịnh Anh Dũng 09:13:13 18/02/2014
  • 1

    Tôi có cùng một vấn đề, nhưng sau khi khởi động lại VS tôi nhận được một bản dựng và các tệp bị khóa lại ..

    – Nguyễn Phương Thúy 19:36:21 23/03/2014
  • 1

    Đây không phải là một giải pháp, tốt nhất là một giải pháp một phần. Tôi không muốn khởi động lại VS cứ sau 10 phút. Làm sạch các giải pháp làm việc cho tôi, nhưng làm sạch nó cứ sau 10 phút cũng không phải là một giải pháp.

    – Lý Quốc Hạnh 19:39:16 15/04/2015
  • 1

    Từ kinh nghiệm của tôi, VS2013 thực hiện điều này ít nhất 10 lần một ngày đối với tôi cho dù tôi đang phát triển máy nào. Nó giống như lỗi đã trở nên tồi tệ hơn. Chỉ cần nói

    – Trịnh Quang Hải 21:16:45 07/05/2015
  • 1

    Không có giải pháp lâu dài cho việc này?

    – Ngô Thanh Thế 17:58:34 05/10/2015
103

Trong Visual Studio Premium 2013 (Bản cập nhật 3), tôi đã giải quyết vấn đề này bằng một lớp lót trước khi xây dựng:

(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") & (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb)

Điều này duyên dáng xóa bất kỳ tệp PDB cũ (nếu có thể), sau đó đổi tên bất cứ thứ gì còn lại với một .old.pdbphần mở rộng. Một hiệu ứng phụ tuyệt vời là nếu PDB cũ vẫn bị khóa, nó chỉ cần thêm một phần .old khác vào tên tệp và tất cả chúng sẽ được dọn sạch vào lần tới khi bạn khởi động lại Visual Studio và thực hiện xây dựng.

Ví dụ: xây dựng / gỡ lỗi phiên 1 lá MyProject.pdbbị khóa.
Lần sau bạn xây dựng:
MyProject.pdb->MyProject.old.pdb

Sau đó, phiên bản xây dựng / gỡ lỗi 2 được bắt đầu và cả hai MyProject.pdbMyProject.old.pdbvẫn bị khóa:
MyProject.old.pdb-> MyProject.old.old.pdb
MyProject.pdb->MyProject.old.pdb

Cuối cùng, khởi động lại Visual Studio và thực hiện một bản dựng mới sẽ loại bỏ cả hai thứ này và tiếp tục quá trình như bình thường.

|
  • 1

    Tương tự trong VS2010, VS 2012

    – Hoàng Thanh Hà 06:26:25 16/01/2015
  • 1

    Cảm ơn bạn, đã làm việc hoàn hảo cho tôi với việc sửa đổi ví dụ của bạn để sử dụng các tệp exe thay thế. Tôi nghĩ rằng đây có thể là một lỗi trong CTP VS 2015 mới nhất.

    – Võ Duy Nam 20:55:07 22/02/2015
  • 1

    Vui mừng vì nó đã giúp - Tôi vẫn cài đặt lệnh trước khi xây dựng và nó hoạt động đủ tốt để tôi quên nó ở đó!

    – Tạ Bá Quân 21:08:41 22/02/2015
  • 1

    Tôi ghét phải làm điều này trên hiệu trưởng, nhưng nó hoạt động, vì vậy có điều đó! :) Cảm ơn đã chia sẻ viên ngọc này, Geoff!

    – Hoàng Trọng Hùng 18:27:57 20/03/2015
  • 1

    Mới nhất (2018-03-11) Visual Studio 2017 v15.6.1: vẫn còn một vấn đề. Gỡ lỗi, ngoại lệ, tập hợp trong thư mục đích bị khóa. Giải pháp trên với * .pdb đã thay đổi thành *.

    – Tạ Diệu Anh 09:30:24 11/03/2018
58

Đó là vì bạn đã đóng ứng dụng của mình, nhưng nó vẫn đang chạy ẩn.

Giải pháp tạm thời:

  • Chuyển đến Trình quản lý tác vụ ( Ctrl+ Alt+ Esc).
  • Chuyển đến tab Processes và tìm "YourProjectName.exe".
  • Kiểm tra "Hiển thị quy trình từ tất cả người dùng" nếu bạn không thể tìm thấy quy trình của mình.
  • Kết thúc quá trình đó.

Giải pháp vĩnh viễn: bạn phải đóng ứng dụng của mình thông qua mã hóa. Đây là mã ...

System.Windows.Forms.Application.Exit();

Bạn phải đặt mã này vào sự kiện kết thúc của biểu mẫu dưới mọi hình thức. Thí dụ:

private void frm_menu_FormClosing(object sender, FormClosingEventArgs e)
{
    System.Windows.Forms.Application.Exit();
}
|
  • 1

    Đây chính xác là nó. Visual Studio đã bị sập và IIS Express vẫn đang chạy (trong trường hợp của tôi). Tất cả những gì tôi phải làm là mở thanh tác vụ và nhấp chuột phải vào biểu tượng IIS Express và thoát. Cảm ơn bạn.

    – Hoàng Mai Khanh 03:16:39 25/07/2017
  • 1

    Điều này làm việc cho tôi; Tôi không thể xóa các thư mục obj và bin vì một quá trình khác đang sử dụng chúng. Rất may, Windows 10 thực sự đã nói tên của nó là gì; một khi nó bị đóng trong Trình quản lý tác vụ, các vấn đề sẽ biến mất

    – Lý Huệ Thương 14:47:02 23/03/2018
25

.vhost.exe là một quá trình gỡ lỗi, vì vậy có vẻ như quá trình được gỡ lỗi đã không được đóng đúng cách. Có thể bạn có một lỗi khiến nó tồn tại và không dừng quá trình gỡ lỗi một cách chính xác - có các tùy chọn để tách khỏi quy trình khi bạn nhấp vào 'dừng gỡ lỗi' thay vì thực sự giết trình gỡ lỗi để có thể bạn đã cài đặt.

Nhưng đó là vấn đề - tệp bạn đang cố sao chép bị khóa (tức là vẫn đang được sử dụng) bởi HĐH để ngăn chặn việc sao chép. Đảm bảo rằng tệp là miễn phí và bạn sẽ có thể sao chép.

|
  • 1

    Tôi đã thêm các tùy chọn trình gỡ lỗi của mình cho các câu hỏi. Tôi khá chắc chắn rằng nó sẽ giết quá trình nhưng có lẽ tôi không hiểu một số tùy chọn.

    – Đặng Gia Phúc 12:17:56 07/08/2013
21

Tôi đã giải quyết nó bằng cách giết IISExpress trong trình quản lý tác vụ

|
  • 1

    Tôi đã suy nghĩ về việc này. Tôi đã không thử nó cho đến khi tôi đọc bình luận của bạn. Va no đa hoạt động! Cảm ơn vì đăng.

    – Hồ Minh Huệ 12:29:21 13/11/2018
20

Bạn nên vô hiệu hóa phần mềm chống vi-rút của mình (đặc biệt nếu đó là Avast) và thử lại. Nó đã giúp đỡ tôi. Vấn đề là trình gỡ lỗi / trình xây dựng tạo tệp .exe được Avast xác định là mối đe dọa và do đó đã bị xóa ngay trước khi nó có thể được thực thi bởi VS.

|
  • 1

    Nắm bắt tốt. Tôi mãi mãi ghét Avast.

    – Ngô Huyền Thư 23:49:22 14/08/2014
  • 1

    Avast cũng là vấn đề đối với tôi. Vô hiệu hóa File System Shield là câu trả lời. Tôi đã thử thêm thư mục Visual Studio \ Project vào Loại trừ nhưng không được.

    – Dương Tuyết 13:03:04 09/12/2014
  • 1

    Tôi có cùng một vấn đề với bảo vệ Symantec Endpoint. Một người nào đó trong bộ phận CNTT đã tăng mức độ bảo mật khá cao :-) Cảm ơn Pitrs.

    – Đỗ Phước Lộc 14:56:02 24/08/2016
  • 1

    Tôi sẽ thêm, rằng bạn có thể tạo ngoại lệ cho thư mục obj \ Debug để sử dụng thuận tiện, thay vì vô hiệu hóa AV hoặc một trong những công cụ bảo vệ của nó.

    – Tạ Duy Hoàng 11:07:44 15/02/2017
  • 1

    Cảm ơn! Tôi thấy rằng đó là một MalwareBytes chặn tệp .exe của tôi.

    – Lý Phú Thịnh 23:22:00 15/03/2017
15

Tôi đã có thể khắc phục sự cố này (VS 2010) thông qua việc cung cấp sau hành động xây dựng trước;

if exist "$(TargetPath).locked" del "$(TargetPath).locked"

if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
|
12

Trích dẫn:

Một cách giải quyết là đặt điều này trong thuộc tính dòng lệnh sự kiện Pre-build của dự án> (Trong tab Sự kiện xây dựng):

Đoạn mã

if exist "$(TargetPath).locked" del "$(TargetPath).locked"

if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
|
6

ngoại lệ

Trong một số trường hợp trong Visual Studio khi bạn (Xây dựng || Xây dựng lại) khi chạy IISExpress, bạn phải đối mặt với Ngoại lệ này:

Không thể sao chép tệp "obj \ Debug \ YourProjectName.dll" sang bin \ YourProjectName.dll ". Quá trình không thể truy cập tệp 'bin \ YourProjectName.dll' vì nó đang được sử dụng bởi một quy trình khác

Dung dịch

  1. Nhấp chuột phải vào dự án web cần xây dựng.
  2. Bấm vào tài sản.
  3. Chọn Tab Sự kiện Xây dựng ở phía bên trái.
  4. Trong dòng lệnh Pre-build, dán 2 dòng này:
tasklist /fi "imagename eq iisexpress.exe" |find ":" > nul
if errorlevel 1 taskkill /f /im "iisexpress.exe"

Bạn tốt 2 GO!

|
6

Giết quá trình w3wp.exe (IIS) thường sẽ giải quyết điều này.
Nói chung, bạn có thể biết quá trình có khóa trên tệp bằng cách điều hướng đến thư mục bin và cố gắng xóa nó. Thông báo lỗi sẽ bật lên, trong trường hợp một quá trình khác đang sử dụng nó, sẽ chứa tên của quá trình cần phải bị giết.

|
5

Có vẻ như bằng cách thay đổi tên lắp ráp của một dự án khắc phục vấn đề.

Vì vậy, thay vì điều này

Tôi đổi nó thành cái này

Lưu ý rằng tôi vừa thay đổi nó từ Increment and Recallthành Increment_Recall, tôi chỉ xóa các khoảng trắng. Nó đang làm việc tốt với tôi.

|
4

Thêm vào sự kiện xây dựng trước của taskkill / f / fi "pid gt 0" / im "YourProcess.vshost.exe"

|
4

Tôi nghĩ rằng tôi đã giải quyết nó bằng cách xóa dấu kiểm thành Break all processes when one process breakstrong các tùy chọn Gỡ lỗi (ảnh chụp màn hình đầu tiên của op-> tùy chọn thứ hai).
Nó đã được xây dựng / chạy tốt trong một thời gian kể từ khi tôi bỏ chọn nó.
Tôi đang sử dụng các điều khiển MySql NET Connector và DevExpress trong dự án của mình. Có thể một trong số họ đã không xử lý các kết nối, ràng buộc, v.v. vì cờ này được kích hoạt.

EDITED: chắc chắn nó hoạt động! Không còn 'Không thể sao chép tệp' và không còn lỗi Trình thiết kế biểu mẫu.

|
4

Tôi gặp vấn đề tương tự trên VS 2012 Phiên bản 11.0.60610.01 Cập nhật 3 trên Windows 8

Không có cửa sổ thiết kế mở và dự án là một ứng dụng giao diện điều khiển đơn giản.

Việc loại bỏ quá trình vshost truy cập tệp không hoạt động hầu hết thời gian vì quá trình không truy cập tệp.

Cách giải quyết đơn giản nhất hoạt động và mất ít thời gian nhất là loại bỏ dự án khỏi giải pháp, xây dựng dự án khác trong giải pháp và sau đó thêm lại bản gốc.

Nó gây khó chịu và lãng phí thời gian nhưng nó ít tốn kém nhất trong tất cả các lựa chọn khác mà tôi biết.

Hi vọng điêu nay co ich...

|
  • 1

    Tất cả những gì bạn phải làm là Xây dựng lại Tất cả và mọi thứ đều ổn trong 10 lần thử khác. Không có nhiều bất tiện.

    – Phạm Quốc Ðiền 15:36:27 24/06/2015
  • 1

    @Scott Shaw-Smith Không làm việc cho tôi. Và dựa trên một số ý kiến ​​khác mà tôi đã thấy, nó cũng không hoạt động cho những người khác. Trong trường hợp của tôi, gỡ cài đặt Avast đã sửa nó.

    – Đặng Kim Ngân 15:02:07 05/08/2015
3

Sử dụng

Debug.Flush();
Debug.Close();

trong trường hợp ngoại lệ xảy ra, trong bắt hoặc cuối cùng là chặn.

Chỉnh sửa: Cá nhân tôi đã đối mặt với vấn đề này và tôi thường thực hiện một mẹo và nó hoạt động tốt. Tôi thay đổi loại bản dựng từ 'gỡ lỗi' thành 'phát hành' (và 'phát hành' thành 'gỡ lỗi' nếu đã có).

|
  • 1

    Có lỗi, đã vứt mã của tôi bằng các khối Flush / Đóng trong Cuối cùng và các phương thức Vứt bỏ. Không có tác dụng gì cả. Nếu bất cứ ai xác nhận rằng điều này hoạt động tôi sẽ xóa -1 của tôi về câu trả lời này.

    – Trịnh Hồng Sương 17:13:52 08/08/2014

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.