Tôi vẫn chưa tìm ra lý do tại sao điều này xảy ra, nhưng tôi có các lớp trong App_Code
thư mục của mình đang gọi các phương thức với nhau và đã làm tốt điều này khi tôi xây dựng một dự án .NET 4.5.2, nhưng sau đó tôi phải hoàn nguyên nó về 4.0 khi máy chủ mục tiêu không được nâng cấp. Đó là khi tôi tìm thấy vấn đề này (sau khi sửa lỗi langversion
trong web.config của tôi từ 6 đến 5 ... một câu chuyện khác) ....
Một trong những phương pháp của tôi liên tục gặp lỗi như:
The type X.Y conflicts with the imported type X.Y in MyProject.DLL
Tất cả các lớp của tôi đã được đặt thành "Biên dịch" trong các thuộc tính của chúng, như được đề xuất cho câu trả lời được chấp nhận ở đây và mỗi lớp có một không gian tên giống nhau và đều có using MyNamespace;
ở đầu mỗi lớp.
Tôi thấy rằng nếu tôi vừa chuyển các lớp vi phạm phải gọi các phương thức lẫn nhau sang một thư mục tiêu chuẩn khác có tên khác là "App_Code", thì chúng đã ngừng gặp vấn đề xung đột này.
Lưu ý : Nếu bạn tạo một thư mục tiêu chuẩn có tên "AppCode", hãy di chuyển các lớp của bạn vào đó, xóa thư mục "App_Code", sau đó đổi tên "AppCode" thành "App_Code", các vấn đề của bạn sẽ trở lại. Sẽ không có vấn đề gì nếu bạn sử dụng tùy chọn "Thư mục mới" hoặc "Thêm thư mục .NET .NET" để tạo "App_Code" - có vẻ như nhập vào tên.
Có lẽ đây chỉ là sự cố .NET 4.0 (và có thể sớm hơn) ... Tôi đã ổn trong 4.5.2 trước khi phải hoàn nguyên!