2009-08-31 56 views
9

Thỉnh thoảng (thường sau khi đã cập nhật tệp .sln của tôi trong điều khiển nguồn) tôi gặp lỗi Visual Studio lạ trong đó tôi không thể mở một số các tập tin. Các tệp được đề cập sẽ hiển thị trong dự án thích hợp, nhưng cố gắng mở kết quả trong hộp thoại báo lỗi cho biết "Một tệp của tên đó đã được mở".Visual Studio - Sửa lỗi "Tập tin của tên đó đã được mở"

Điều này hầu như giống hệt với Why does it say "Project with that name already opened in the solution"?, ngoại trừ tệp, không phải dự án. Giải pháp được đưa ra ở đó là không sửa lỗi này.

Trả lời

11

Visual Studio duy trì danh sách các tệp hiện đang mở, để tránh các sự cố gây ra bằng cách mở tệp nhiều lần. Bất kỳ số thứ nào (sự cố, khởi động lại, cập nhật tệp trong điều khiển nguồn bên ngoài VS) có thể khiến danh sách này bị hỏng.

Trong mọi trường hợp, sự cố có thể được khắc phục bằng cách xóa tệp Solution.suo ẩn nằm trong cùng thư mục với tệp Solution.sln của bạn. Điều này sẽ khiến bạn mất trạng thái không gian làm việc hiện tại của mình (mở tệp, bố cục cửa sổ, v.v.), nhưng nó sẽ không có bất kỳ tác động bất lợi nào khác đến giải pháp của bạn.

Đây là tệp ẩn, vì vậy để xem hoặc xóa tệp, bạn phải bật xem tệp ẩn trong Explorer hoặc sử dụng del /AH Solution.suo trên dòng lệnh.

+0

Sử dụng VS2008 trên Vista, tôi đã xóa tệp Solution.sln.cache để có cùng tác dụng. – willoller

+0

Hoạt động cho VS2010 trên Máy chủ 2008. – weenoid

+2

Tôi không tìm thấy ý tưởng xóa .suo là tốt nhất. Đối với tôi chỉ cần đóng VS và mở nó một lần nữa giải quyết vấn đề. –

1

Bạn có bất kỳ tệp được liên kết nào trong giải pháp không?

Visual Studio có một bất biến mà chỉ một tệp duy nhất của một đường dẫn nhất định có thể được mở cùng một lúc. Điều bất biến này được nhấn thường xuyên nhất khi bạn có tệp được liên kết trong dự án/giải pháp của bạn và cố mở cả bản gốc và một trong các tham chiếu được liên kết của nó.

+0

Không có tệp được liên kết AFAIK. –

2

Xóa các tập tin ẩn .suo và chỉnh sửa các tập tin csproj để loại bỏ các dòng dưới đây:

<SccProjectName>Svn</SccProjectName> 
<SccLocalPath>Svn</SccLocalPath> 
<SccAuxPath>Svn</SccAuxPath> 
<SccProvider>SubversionScc</SccProvider> 

Bây giờ, mở lại các giải pháp để giải quyết vấn đề này.

+0

Điều này làm việc cho tôi, có một dự án mà tôi đã chuyển từ Subversion sang Git. Loại bỏ những dòng này trong tệp vbproj đã giải quyết vấn đề này. –

-1

tập tin csproj mở của dự án và xóa dòng sau:

<SccProjectName>SAK</SccProjectName> 
<SccLocalPath>SAK</SccLocalPath> 
<SccAuxPath>SAK</SccAuxPath> 
<SccProvider>SAK</SccProvider> 

Những dòng này có lẽ hầu hết được tạo ra do dự án sẽ được thêm vào hình ảnh svn tức là khi dự án/giải pháp sẽ được thêm vào kiểm soát nguồn dự án/giải pháp tập được cập nhật để bao gồm thông tin tích hợp kiểm soát nguồn và những dòng này được thêm vào gây ra sự cố.

Xóa các dòng này và chỉ cần tải lại dự án của bạn (hoặc giải pháp), điều này sẽ khắc phục sự cố.

+0

VisualSVN không ghi những dòng này vào tệp dự án. – bahrep

+0

bạn là chính xác và đó là những gì tôi đã viết rằng nó có thể được tạo bởi svn trực quan, mặc dù trường hợp là khi bạn thêm một giải pháp/dự án vào kiểm soát nguồn, tệp giải pháp/dự án sẽ được cập nhật để bao gồm tích hợp điều khiển nguồn thông tin. và trong thời gian này trên các dòng được thêm vào. - mặc dù thấy câu trả lời đã chỉnh sửa. –

+1

Tôi rất tiếc, nhưng tôi không hiểu. Trình cắm thêm VisualSVN không thêm các dòng này vào tệp dự án hoặc giải pháp. Tuy nhiên, tôi nhớ rằng AnkhSVN đã thêm chúng. Bạn có thể tự mình thử với một dự án sạch sẽ. :) – bahrep

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