2013-04-24 30 views
25

Nhiều lần trong ngày tôi nhận được lỗi này trong khi chạy dự án asp.net mvc4 của tôi. Tôi không hỏi điều đó có nghĩa là gì, hoặc cách sửa chữa nó, nhưng tôi đang làm gì để gây ra nó? Nó thực sự bắt đầu gây lỗi cho tôi, và nếu tôi có thể khiến nó biến mất bằng cách thay đổi công việc của tôi, tôi sẽ làm như vậy.Điều gì gây ra asp.net Không thể tạo/sao chép lỗi?

Không thể tạo/sao chép bản sao '< assembly>' khi tệp đó đã tồn tại.

Như tôi đã đề cập ở trên, dự án là một ứng dụng MVC4. Luồng công việc của tôi là điển hình.

  • Thực hiện một sự thay đổi (mã hoặc html)
  • Nếu nó là mã, xây dựng lại dự án (sử dụng phím tắt CTRL + SHIFT + B)
  • làm mới trang
  • thấy lỗi gây phiền nhiễu
    • làm sạch giải pháp
    • giải pháp xây dựng lại
    • làm mới trang
  • xác minh thay đổi
  • goto 10

(tôi nhận được lỗi có/không có các chương trình gỡ rối kèm theo.) Tôi sẽ luôn luôn biết ơn cho bất cứ ai có thể thông báo cho tôi về cách tránh lỗi này, và sẽ ngay lập tức tweet lời khen ngợi của bạn

+0

Bạn đã bao giờ đến đáy của điều này chưa? Vẫn gặp sự cố này vào tháng 11 '14 với Visual Studio 2013 Update 4! – JMK

+1

@JMK Khi câu trả lời được chấp nhận gợi ý, tôi chỉ dừng lại và đếm đến 3 sau khi quá trình xây dựng hoàn tất. Nó thường không phải là một vấn đề nữa bởi vì tải lại trực tiếp chăm sóc nó cho tôi – Joe

Trả lời

26

Tôi cũng thấy điều này gây phiền nhiễu. Dường như điều này xảy ra khi bạn cố gắng làm mới trang trong trình duyệt trước khi bản dựng hoàn tất hoàn toàn. Hãy thử đếm đến ba nghìn lẻ sau khi xây dựng hoàn tất và sau đó làm mới trong trình duyệt. Tạo/sao chép bản sao nên được thực hiện bởi thời điểm đó.

Tôi cũng không nghĩ bạn nên cần "giải pháp làm sạch". Tôi tin rằng việc xây dựng lại là một bản dựng sạch sẽ, vì vậy bạn có thể làm sạch hai lần.

Sau một chút nghiên cứu, tôi cũng tìm thấy this pre-build event which seems to be popular. (workaround này dường như không làm việc, có lẽ nó đã làm trong phiên bản trước của VS khuôn khổ/.NET)

Cập nhật: giải pháp thay thế

Một cách khác để có được bởi đây là, khi bạn nhìn thấy YSOD , chỉ cần nhập một URL khác trong trình duyệt và tải nó thay thế. Sau đó nhấp vào nút quay lại và làm mới để truy cập trang bạn đang cố gắng tải lại ở vị trí đầu tiên.

+0

Hãy để tôi thử điều đó một chút :) Liên quan đến việc làm sạch/xây dựng lại http://ux.stackexchange.com/questions/11660/why- do-people-clear-the-screen-nhiều lần-khi-sử dụng-một-máy tính – Joe

+1

Tôi nhận được ngoại lệ sao chép bóng này thường khi tôi làm việc nhanh, và tôi không bao giờ làm sạch. Xây dựng lại và tạm dừng giải quyết nó 100% nếu thời gian cho tôi. – danludwig

+1

Tôi đã cài đặt SSD, vì vậy tôi nghi ngờ đó là độ trễ. – Joe

6

Điều gì gây ra lỗi này dường như đang làm bản sao bóng (nêu rõ ...), tức là tạo một tệp trong một thư mục và sau đó đọc nó để sao chép nó ở nơi khác. Tôi nghĩ nguyên nhân gây ra sự cố là tạo ra hoặc không phải tệp đầu tiên đó và khi nào/sao nó được sao chép, bất kể hành động của bạn là gì. Tệp đầu tiên này (sẽ được sao chép bóng) có cần tái tạo và do đó sao chép lại không?

This post nói:

Theo mặc định bản sao bóng được kích hoạt trên mỗi appdomain tạo ra bởi ASP.MẠNG LƯỚI. Các hội đồng được tải sẽ được sao chép vào thư mục bộ nhớ cache sao chép bóng và sẽ được sử dụng từ đó. Vì vậy, các tập tin ban đầu không bị khóa và có thể được sửa đổi.

Và khắc phục của chúng là ngăn chặn bản sao bóng. Nhưng tôi không personnally hoàn toàn hiểu những gì bản sao bóng nào trong bối cảnh asp.net, có lẽ ai đó có thể làm rõ nếu có bất kỳ tác dụng phụ xấu để vô hiệu hóa nó:

<configuration> 
    <system.web> 
     <hostingEnvironment shadowCopyBinAssemblies="false" /> 
    </system.web> 
</configuration> 

This post cuộc đàm phán về việc vô hiệu hóa chỉ mục và/hoặc chống virus , điều này sẽ gợi ý rằng việc xây dựng dự án tạo ra các tệp mới và dịch vụ chống vi-rút (hoặc lập chỉ mục) truy cập chúng và khóa chúng, ngay khi bản sao bóng cố gắng sao chép cùng một tệp đó.

Tôi gặp lỗi thường xuyên và không bao giờ tìm thấy hành động cụ thể mà tôi gây ra lỗi. Tôi thực hiện thay đổi mã, nhấn F5 (nút Chạy/Phát), nhận lỗi trong trình duyệt web, đóng trình duyệt web, nhấn lại F5. Nó bây giờ hoạt động. Tôi không sạch sẽ, tôi không xây dựng lại. Tuy nhiên, với F5/Run thứ hai, tôi tin rằng VS phát hiện không có thay đổi mã, và do đó, có lẽ bản sao bóng không được làm lại? Hoặc có lẽ thời gian này bản sao bóng được hẹn giờ hơi khác nhau và nó hoạt động.

+2

Vấn đề với việc vô hiệu hóa bản sao bóng là VS sẽ không thể thay thế các hội đồng trên bản dựng tiếp theo; thay vào đó các tập tin lắp ráp sẽ được sử dụng bởi ứng dụng web. Shadow copy tạo ra một bản sao của các assembly được nạp thay vào đó, cho phép các assembly ban đầu được ghi đè bất cứ lúc nào. –

1

Tôi đã nhận được lỗi này sau khi thêm hình ảnh mới vào dự án web của tôi.

Trong VS, mỗi hình ảnh có thuộc tính có tiêu đề "Sao chép vào thư mục đầu ra". Tôi chọn "Copy Always", sau đó tôi nhận được tin nhắn.

Tôi đã đổi thành "Không sao chép" - bây giờ nó rất vui.

Hy vọng rằng sẽ giúp ai đó.

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