Đây là lỗi khá gặp phải khi bạn sử dụng ASP.NET 2.0 Web Deployment Project. Đây là một lỗi khó để sửa khi bạn biên dịch project bởi vì có rất ít thông tin được đưa ra từ VS2005. Thường thì lỗi này sảy ra khi chương trình aspnet_merge ghép toàn bộ file trong web project vào 1 file assembly. Theo mặc định ứng dụng asp.net 2005 website không đưa default namespace vào trong các file class, vì thế, nếu bạn tạo file MyPage.aspx ở thư mục root và cả các thư mục khác bên trong thư mục root, nó sẽ tạo ra xung đột về tên khi được ghép vào 1 file assembly trong quá trình biên dịch. Lỗi này bản thân nó không được hiện ra trong quá trình bạn lập trình bởi vì lúc bạn chưa biên dịch toàn bộ cả website vào 1 file assembly, và bản thân theo mặc định của VS2005, khi bạn biên dịch thì các class trong project của bạn sẽ được biên dịch thành các file assembly riêng rẽ, vì thế việc đụng độ về tên được tránh khỏi.
Để sửa lỗi này, hoặc là bạn thay tên của các class (không class nào trùng tên với class nào), hoặc là bạn đưa chúng vào các namespace để tránh xung đột.
Vì mặc định khi biên dịch, VS2005 cung cấp cho ta rất ít thông tin về quá trình biên dịch, để có thể biết được chi tiết thông tin về quá trình đó ta có 2 cách:
  1. Nếu bạn sử dụng MSBuild trong chế độ dòng lệnh, bạn có thể dùng tuỳ chọn: "/verbosity".
    Ví dụ: C:\projects>msbuild YourSolutionFile.sln /t:Rebuild /p:Configuration=Release /verbosity:detailed
  2. Nếu bạn sử dụng Visual Studio, bạn có thể thay đổi theo các bước sau: Chọn Tools -> Options -> Projects and Solutions -> Build and run. Đến đây, các thông số tuỳ chọn ở bên phải hiện ra, bạn chọn "Detailed" trong hộp thoại : MSBuild project build output verbosity. Bạn có thể xem chi tiết theo hình bên dưới đây: