Không thể sao chép tệp - quyền truy cập vào đường dẫn bị từ chối


238

Tôi đang sử dụng Visual Studio 2005. Sau khi lấy mã từ kiểm soát phiên bản trước, ứng dụng c # .net chạy chính xác. Nhưng, sau khi thực hiện một số sửa đổi, khi tôi xây dựng, tôi gặp phải lỗi sau:

Lỗi 383 Không thể sao chép tệp ".. \ root \ leaf \ Bin \ Debug \ test.Resource.xml" sang "Bin \ Debug \ test.Resource.xml". Truy cập vào đường dẫn 'Bin \ Debug \ test.Resource.xml' bị từ chối. li.rollmodel

Có ai biết tại sao vấn đề này xảy ra?

Chỉnh sửa Tôi có thể thấy rằng toàn bộ thư mục mã nguồn dự án của tôi là Chỉ đọc và tôi không thể xóa thuộc tính chỉ đọc.

Đầu tiên, có ai có thể cho tôi biết cách xóa thuộc tính Chỉ đọc cho thư mục này không? Tôi đã cố gắng loại bỏ nó nhưng tài sản chỉ đọc vẫn tồn tại. Tôi cũng đã thử từ phía kiểm soát phiên bản và điều đó cũng không hoạt động.


Đây có phải là trên một chia sẻ mạng? Bạn có quyền truy cập quản trị trên máy của bạn? Câu hỏi này có thể phù hợp hơn với serverfault hoặc superuser.
arunkumar

không ,, tôi đang sử dụng máy của riêng mình, tôi có quyền truy cập quản trị
ricky

Tôi đã giải quyết vấn đề đó bằng cách sao chép thủ công tệp từ một vị trí sang vị trí bắt buộc, rõ ràng vấn đề có liên quan đến MSBUILD với tệp chỉ đọc
ricky

Câu trả lời:


276

Tôi đã giải quyết vấn đề này bằng cách xóa các tệp gây tranh cãi khỏi thư mục bin và xây dựng lại dự án.


50
bài cũ, tôi biết, nhưng tôi đã có cùng một vấn đề vừa rồi. Đảm bảo rằng VS cũng bị đóng vì nó sẽ từ chối quyền truy cập để xóa thư mục trong một số trường hợp
Eon

1
Lưu ý nhỏ: Lúc đầu, tôi không hiểu, tôi phải xóa các tệp này trong thư mục đầu ra của dự án chính chứ không phải trong thư mục đầu ra của dll. Vì vậy, cảnh báo ở đây :)
Piero Alberto

6
Trong trường hợp của tôi, ngay cả việc đóng VS cũng không đủ để giải phóng thư mục và cho phép tôi xóa nó - ProcessExplorer cho thấy "VBCSCompiler.exe" vẫn đang sử dụng nó. Trong trường hợp này, đăng xuất và vào Windows (hoặc chỉ giết quá trình) đã thực hiện thủ thuật này, cho phép tôi xây dựng lại giải pháp và khiến mọi thứ hoạt động trở lại.
S. Jensen

2
trong trường hợp của tôi, lý do thư mục và giải pháp đó chuyển thành ReadOnly và sau đó VS gặp sự cố khi xây dựng nó, là do một số tệp không đồng bộ với GoogleDrive và bị khóa bởi quá trình đó. Vì vậy, để tôi xây dựng lại đúng cách, tôi đã phải đóng GoogleDrive và sau đó nó được xây dựng tốt.
konrad

1
Tôi thấy Bitdefender Antivirus Free là thủ phạm.
Warwick

123

Chỉ cần đảm bảo rằng thư mục KHÔNG chỉ đọc và xây dựng lại giải pháp


12
Tôi đang cố xóa hộp kiểm 'Chỉ đọc' có màu Xanh lục. Khi tôi nhấp vào 'Áp dụng' và sau đó 'Ok', rồi kiểm tra lại các thuộc tính của thư mục đó, tôi có thể thấy lại ở trạng thái trước đó (một lần nữa có hộp kiểm 'Chỉ đọc' có màu Xanh lục). Bất cứ ai có giải pháp về điều này?
Vikram

Ngoài ra, hãy chắc chắn rằng tập tin không bị khóa. Trong trường hợp của tôi, tập tin đã được chia sẻ và người khác đã mở nó.
Dan Bechard

Đóng Visual Studio trước khi xóa thuộc tính chỉ đọc. Bởi vì tệp đang được đề cập có thể đang được sử dụng (bị khóa)
Gautam Jain

4
Đã tạo tiện ích mở rộng Visual Studio để xóa thuộc tính ReadOnly và Hidden của các dll chặn bản dựng. UnBlockDllExtension: marketplace.visualstudio.com/ Từ
vrnithinkumar

69

Tôi đã giải quyết vấn đề này: Đóng Visual Studio, mở lại và tải giải pháp, Xây dựng lại giải pháp của bạn. Sự cố của tôi xảy ra khi sử dụng TFS và VIsual Studio 2010.


22
Thêm vấn đề tương tự trong VS2013. Trường hợp kinh điển của The IT Crowd. "Xin chào, đây là CNTT, bạn đã thử tắt và bật lại chưa?".
Maxime Rouiller

1
Kịch bản tương tự: TFS và VS 2010. Cùng một vấn đề. Giải pháp tương tự. +1
ajeh

2
Điều này cũng đã xảy ra trên VS2015: p
Yoo Matsuo

4
Và tương tự trong VS2017
arame3333

1
Tôi đã cố gắng khắc phục điều này, hóa ra phương pháp cũ tốt nếu cái gì đó không hoạt động, khởi động lại nó, hoạt động tốt
Mykhailo Seniutovych

50

Giết quá trình VBCSCompiler.exevà xây dựng lại.


3
Đây là những gì đã giải quyết nó cho tôi. Cảm ơn bạn là người lạ: D
Morsus

vâng, đây là nó
kal kokah

Cảm ơn bạn rất nhiều, bạn loại người lạ! : D
Đặc vụ007

đôi khi nó không hiệu quả với tôi, tôi phải nói rằng nó sẽ giải quyết được một phần của vấn đề này, có một thứ khác cũng gây ra vấn đề này
Amit Bisht

Hãy thử điều này cũng có thể giúp bạn stackoverflow.com/a/12740768/2445111
Amit Bisht

23

Tôi cũng bước vào vấn đề này.

Trước tiên, hãy kiểm tra xem bạn đã ánh xạ thư mục bin và obj của mình vào chương trình Kiểm soát nguồn chưa.

Điều này có thể đang biến các tệp của bạn từ các thư mục nhị phân thành các tài liệu lưu trữ chỉ đọc, điều này khiến cho phòng thu trực quan không thể ghi đè lên chúng khi nó biên dịch mã.

Đi và xóa ánh xạ khỏi các thư mục này, kiểm tra các thay đổi và thử lại.

Sự cố của tôi xảy ra khi sử dụng TFS (Team Foundation server) và Visual Studio 2010.

Hy vọng điều này sẽ giúp được ai đó.


1
Tôi chỉ muốn thêm rằng câu trả lời của Heitorolecarte đã khắc phục vấn đề của tôi và điều này có thể xảy ra với Visual Studio 2012 và TFS2010.
Rodney

20

Chạy Visual Studio của bạn với tư cách Quản trị viên


1
Lưu ý: đây là một cách ngắn gọn và đơn giản để luôn luôn chạy với tư cách quản trị viên theo mặc định stackoverflow.com/questions/12257110/ Lời
wmebane

Câu trả lời này đã cho tôi biết rằng tôi chỉ cần thêm quyền ghi vào "Người dùng" trên thư mục đầu ra của mình - và điều đó đã giải quyết ngay vấn đề của tôi (đó là lần đầu tiên tôi không thể xuất bản).
X Goodrich

9

Tôi sử dụng Visual Studio 2013. Tôi đã gặp vấn đề này 2 lần:

  1. Trong lần đầu tiên, tôi đã chạy Visual Studio mà không có quyền Quản trị viên. Vì vậy, tôi đã đóng VS và bắt đầu sử dụng tùy chọn ' Chạy với tư cách quản trị viên '. Điều này đã giải quyết vấn đề của tôi.

  2. Trong lần thứ hai, tôi đã khởi động lại VS nhiều lần, mỗi lần đảm bảo rằng tôi đang chạy nó với tư cách quản trị viên. Ngoài ra, tôi xây dựng lại giải pháp nhiều lần. Nhưng, mặc dù tôi đã nhận được lỗi. Sau đó, tôi đã xóa tệp có liên quan khỏi vị trí đích (tệp đã có sẵn có thể từ bản dựng trước đó tại vị trí mà nó cố gắng sao chép vào) và xây dựng lại giải pháp . Sau đó, lỗi biến mất và mọi thứ chạy trơn tru!


8

Trong trường hợp của tôi, đó là phần mềm chống virus đã chặn tập tin.


BitDefender 6.2 tại đây
JOG

7

Điều này đã hỗ trợ đầu của nó một lần nữa trong Visual Studio 2017, trong trường hợp này nguyên nhân là do quá trình hiểu biết ứng dụng ServiceHub.DataWarehousehost.exe.

Có một cách giải quyết được thảo luận trong cảnh báo luồng MSB3026: Không thể sao chép "obj \ Debug \ netcorản1.1 \ src.pdb" sang "bin \ Debug \ netcorzon1.1 \ src.pdb" , để thêm bản dựng trước sự kiện cho dự án để giết quá trình mỗi khi dự án được xây dựng. Trích dẫn từ liên kết đó:

  • Nhấp chuột phải vào dự án
  • Chọn thuộc tính
  • Xây dựng sự kiện
  • Dòng lệnh sự kiện xây dựng trước
taskkill /IM ServiceHub.DataWarehouseHost.exe /F 2>nul 1>nul
Exit 0
  • Lưu và xây dựng

6

Có ai có thể biết tại sao vấn đề này lại đến không?

Nhìn vào phản hồi của bạn rằng bạn đã giải quyết vấn đề của mình bằng cách sao chép thủ công, tôi sẽ nói rằng mã bạn đang làm việc được tạo bởi một số người dùng khác (cũng có đặc quyền của quản trị viên) nên nó đã bị khóa đối với bạn. Bằng cách thực hiện sao chép -? dán, bạn đã tạo bản sao OWN của nguồn với tất cả quyền truy cập bạn yêu cầu. Điều duy nhất cần lưu ý là, trong trường hợp này nếu nhà phát triển khác này sẽ cần làm việc trên bản sao của bạn, anh ấy / cô ấy sẽ nhảy vào vấn đề khá giống bạn gặp phải trước đây.


6

Đầu tiên đi đến vị trí của tập tin. Sau đó nhấp chuột phải vào thư mục của tệp -> Thuộc tính -> Bỏ chọn Tùy chọn chỉ đọc và áp dụng cho các tệp và thư mục con của nó. Nó giải quyết vấn đề của tôi. Chúc mừng mã hóa!


3

Tôi đã thêm lại tất cả các phụ thuộc / tham chiếu không phải .NET của mình và nó đã thực hiện thủ thuật này.


3

Tôi tự giải quyết vấn đề này. Vấn đề là tôi đã có giải pháp mở ở một nơi khác. Sau khi đóng nó hoạt động


Tôi cũng đã làm điều này. Luôn luôn kiểm tra những thứ dễ dàng rõ ràng trước tiên, đích đến của tôi là trên một ổ đĩa mạng, vì tôi đang gỡ lỗi trên một máy khác.
Simon Unsworth

3

Có cùng một vấn đề, nhưng khởi động lại Visual Studio mỗi lần không phải là lựa chọn đối với tôi , vì vấn đề đôi khi xảy ra rất thường xuyên.

Tôi đã xử lý nó bằng cách cài đặt Unlocker ( cố gắng cài đặt bất kỳ thanh công cụ nào khi cài đặt, vì vậy đừng quên bỏ chọn cái này ), ứng dụng này cho phép tôi truy cập nhanh để đổi tên / xóa một ".xml" bị khóa . Tôi biết rằng đây chỉ là một cách giải quyết, nhưng đối với tôi nó là giải pháp nhanh nhất để giải quyết vấn đề này.


Cảm ơn vì điều đó. Tôi đã gặp vấn đề này trong năm qua và nghĩ rằng đó là do tôi sẽ chuyển đổi giữa Quản trị viên chứ không phải, nhưng bây giờ tôi biết đó là một quy trình quan trọng liên quan đến Panda Antivirus ngu ngốc (PSANHost.exe, không có trong Trình quản lý tác vụ) đã khóa các tập tin.
yeejuto

3

Bài cũ, nhưng zombie này đang tấn công VS 2017 (Tôi chưa đi sâu vào lý do tại sao nó chỉ là "một số" dự án). Trong trường hợp này, đó không phải là quyền của người dùng , thay vào đó, quy trình IIS Express vẫn đang sử dụng các tệp.

Bạn sẽ thấy biểu tượng trong khay tác vụ của mình Biểu tượng IIS Express

  1. Kích chuột phải
  2. Lối ra
  3. Bạn sẽ có thể rebuildkhông có thông báo "quyền bị từ chối" gây phiền nhiễu này.

Đây cũng là lý do tại sao "khởi động lại Visual Studio" sẽ "khắc phục" vấn đề. Làm như vậy, dừng IIS Express.

Hth ...


2

Tôi đã tạo ra vấn đề này khi tôi thêm một dự án thiết lập mới vào giải pháp và sau đó thêm các tệp trực tiếp từ thư mục / bin / phát hành của dự án ứng dụng chính vào thư mục tệp ứng dụng của dự án thiết lập. Kiểm soát nguồn của dự án thiết lập đã liên tục ngăn tôi hoàn thành bản dựng của dự án ứng dụng chính.

Giải pháp: tạo một thư mục kết xuất riêng bên ngoài bất kỳ dự án nào sẽ chứa tất cả các tệp được bao gồm trong cài đặt và thêm chúng từ đó. Thật là khó khăn vì bây giờ tôi phải nhớ sao chép tất cả các tệp cho mỗi gói cài đặt mới. Tôi có thể thấy nếu tôi có thể làm gì đó với các hành động hậu xây dựng, bản dựng tự động của chúng tôi để làm cho quá trình trơn tru hơn.


2

Nếu bạn sao chép bất kỳ tệp nào qua một giải pháp, hãy đảm bảo các tệp không ở chế độ Chỉ đọc. Nhấp chuột phải vào tập tin và bỏ chọn tùy chọn thuộc tính đã giải quyết vấn đề của tôi.


2

Tôi đã có cùng một lỗi nhưng tôi đang sử dụng kiểm soát phiên bản Perforce . Đây là cách tôi sửa nó.

  1. Đóng máy khách Perforce P4V
  2. Khởi động lại Visual Studio 2010 (có thể không cần thiết)
  3. Xây dựng lại dự án, đã thành công
  4. Cảm thấy đặc biệt hạnh phúc và chán ghét cùng một lúc

1
Tôi có cùng một thiết lập, nhưng không thể đến bước 3 và 4 :(
user3260977

2

Tôi cũng có vấn đề tương tự. Tôi nhận được thông báo lỗi liên quan đến không thể sao chép vì quyền truy cập vào đường dẫn bị từ chối. Trong trường hợp của tôi, tất cả các tệp dll và xml của tôi đều được đặt tại thư mục D: \ TFS \ example \ Bin \ Debug.

Tôi nhấp chuột phải vào thư mục Bin và nhấp vào Thuộc tính và thấy hộp kiểm Chỉ đọc được chọn trong Thuộc tính.

Tôi bỏ chọn hộp kiểm Chỉ đọc và dán Áp dụng và nhấp vào OK trên cửa sổ bật lên mới được hiển thị.

Tôi đã quay lại Visual Studio và xây dựng giải pháp cho tôi thông báo lỗi.

Voilaa .. Lần này nó xây dựng thành công mà không có lỗi.

Tôi không biết liệu điều này có hoàn hảo hay không nhưng tôi đã làm điều này để giải quyết vấn đề của mình.


2

Kiểm tra Trình quản lý tác vụ và đảm bảo bạn không bị treo quá trình devenv.exe. Giết quá trình chạy trốn và thử lại.


2

Đi đến đường dẫn của tệp sau đó bỏ chọn hộp kiểm chỉ đọc của tệp này.


1

Tôi biết đó là một chủ đề cũ nhưng đối với những người tìm kiếm câu trả lời, như tôi vài phút trước, tôi khuyên bạn nên thử khởi động lại máy tính của bạn trước. Điều đó một mình cố định cho tôi. Trước đây thậm chí không thể sao chép thủ công vào thư mục.


1
cũng giúp tôi Băng đảng 2020
Vitor Ceolin

1

Chỉ cần nhấp chuột phải vào dự án MVC của bạn và nhấp vào tùy chọn sạch. Tôi đã có một vấn đề tương tự và làm sạch dự án trước khi xây dựng lại giải quyết nó cho tôi.


1

Tôi cũng có vấn đề tương tự. Tôi đã sửa nó bằng cách bỏ chọn các thuộc tính chỉ đọc của thư mục gốc.


Đôi khi giải pháp đơn giản và rõ ràng như thế này. Thay vì liên tục đập đầu bạn và làm việc xung quanh các thủ tục phức tạp và vô tận, chỉ cần kiểm tra các loại khả năng đơn giản này và cuộc sống của bạn sẽ trở nên dễ dàng hơn nhiều. Tôi rất biết ơn StackOverflow đã cung cấp cho chúng tôi một cộng đồng chuyên gia rộng lớn như vậy, những người có thể cung cấp cho chúng tôi sự giúp đỡ cần thiết vào những thời điểm tuyệt vọng.
Choudhury Saadmaan Mahmid

1

Tôi cũng đã có vấn đề này. Đây là cách giải quyết

  • Loại trừ binthư mục khỏi dự án.
  • Đóng studio trực quan.
  • Dọn dẹp ổ đĩa C.
  • Mở lại dự án trong studio hình ảnh.
  • Và sau đó xây dựng lại giải pháp.
  • Chạy dự án.

Quá trình này là công việc cho tôi.



1

Tôi đã có thể giải quyết vấn đề bằng cách xóa tệp mục tiêu đang khiếu nại (trong ví dụ của bạn "Bin \ Debug \ test.Resource.xml") khỏi thư mục bin của trang web đích và xây dựng lại nó. Tôi đã sửa nó cho tôi.


1

1) đóng giải pháp phòng thu trực quan

2) điều hướng đến dấu nhắc lệnh -> chạy với tư cách quản trị viên -> iisreset / stop

3) điều hướng đến c -> Windows -> Microsoft.Net -> Framework64 -> v4.030319 -> Tệp Asp.NET tạm thời -> Xóa tất cả các tệp và thư mục trong đường dẫn này.

4) Điều hướng quay lại dấu nhắc lệnh -> iisreset / start

5) Bây giờ hãy mở studio trực quan -> chạy với tư cách quản trị viên -> làm sạch giải pháp và xây dựng nó (không xây dựng lại .. xây dựng công việc cho tôi)


0

Bạn không cần phải thay đổi thuộc tính thư mục thành không đọc. Lý do bạn thấy thông báo lỗi này là vì kiểm soát nguồn giả định rằng bạn chỉ lưu trữ các tệp linh tinh của mình ở một nơi khác ngoài thư mục bin, vì nó dành riêng cho các tệp được tạo tự động bởi .Net và nó không muốn thêm chúng vào nguồn điều khiển.

Tôi đề nghị thay vì sử dụng Environment.CurrectDirectory(mà tôi giả sử bạn hiện đang sử dụng), bạn tạo một thư mục có tên "MyProjectName" trong địa chỉ% appdata% và sau đó sử dụng:

System.IO.Path.Combine(Environment.GetEnvironmentVariable("appdata"),"YourProjectName").


0

Vì vậy, tôi chỉ gặp vấn đề tương tự, nguyên nhân là do tôi, tôi đã chia sẻ thư mục phát triển của mình để tôi có thể sử dụng máy Mac làm máy chủ lưu trữ cho ứng dụng IOS sử dụng Xamarin. Dự án đang chạy trên mac đã sở hữu dll do đó tôi không thể thay đổi dll đó từ bất kỳ nơi nào khác. Chỉ cần dừng ứng dụng trên mac trả lại quyền sở hữu cho tôi, cho phép truy cập lại đầy đủ. Tôi hy vọng điều này làm cho kể từ đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.